python中text怎么旋转字体_Python+OpenCV实现旋转文本校正方式
假设我们有一幅图像,图像中的文本被旋转了一个未知的角度。为了对文字进行角度的校正,我们需要完成如下几个步骤:
1、检测出图中的文本范围
2、计算出文本被旋转的角度
3、将图像旋转特定的角度
第一步、读取图像,并做二值化处理
#读取图像,做二值化处理
img = cv.imread('img/imageTextR.png')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow('gray', gray)
#像素取反,变成白字黑底
# gray = cv.bitwise_not(gray)
ret, thresh = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
cv.imshow('thresh', thresh)
第二步、计算包含了被旋转文本的最小边框
#计算包含了旋转文本的最小边框
coords = np.column_stack(np.where(thresh > 0))
print(coords)
#该函数给出包含着整个文字区域矩形边框,这个边框的旋转角度和图中文本的旋转角度一致
angle = cv.minAreaRect(coords)[-1]
print(angle)
我们将这些坐标传给函数cv.minAreaRect,该函数将给出包含着整个文字区域的矩形边框,这个边框的旋转角度和图中文本的旋转角度一致。
第三步、调整角度
#调整角度
if angle < -45:
angle = -(90+ angle)
else:
angle = -angle
在角度小于-45的情况下,在原来的角度上增加90度,角度大于-45度,直接对角度反转。
第四步、执行仿射变换
#仿射变换
h, w = img.shape[:2]
center = (w//2, h//2)
print(angle)
M = cv.getRotationMatrix2D(center, angle, 1.0)
rotated = cv.warpAffine(img, M, (w, h), flags=cv.INTER_CUBIC, borderMode=cv.BORDER_REPLICATE)
cv.putText(rotated, 'Angle: {:.2f} degrees'.format(angle), (10, 30), cv.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)
print('[INFO] angel :{:.3f}'.format(angle))
cv.imshow('Input', img)
cv.imshow('Rotated', rotated)
校正后效果:
python中text怎么旋转字体_Python+OpenCV实现旋转文本校正方式相关推荐
- python中text函数的语法_Python语法大全(持续更新中ing)
1.type()函数可以返回任何Python定义的数据类型. Python提供了一些数字类型转换函数:int().long().float().complex().整数.长整数和浮点数可以通过comp ...
- python中怎么调整代码字体格式,pythondocx如何在文本和制表符之间分别更改字体大小...
我正在尝试使用python docx在第一页中创建表,但是当我试图修改标题的字体大小时,表大小也会改变,即使我尝试在表中再更改一个字体大小 设置.我该怎么做?在def Firstpage(): tit ...
- [转载] python中for语句用法_详解Python中for循环的使用_python
参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...
- python中for语句用法_详解Python中for循环的使用_python
这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...
- python中异或怎么算_python 异或运算的前提_异或运算公式
Python基础(10)–数字-Python-第七城市 609x288 - 73KB - JPEG Python基础(10)--数字_资讯_突袭网 609x288 - 33KB - JPEG pyth ...
- python中text格式_python读取各种格式的文本
1. 读取word文本 Python可以利用python-docx模块处理word文档,处理方式是面向对象的,python-docx模块会把word文档中的段落.文本.字体等都看做对象,对对象进行处理 ...
- python中的figure什么意思_Python Matplotlib.figure.Figure.text()用法及代码示例
Matplotlib是Python中的一个库,它是数字的-NumPy库的数学扩展. Figure模块提供了顶层Artist,即Figure,其中包含所有绘图元素.此模块用于控制所有图元的子图和顶层容器 ...
- python给图片加半透明水印_Python+OpenCV为图片添加中文水印与图片水印
OpenCV中在图片上输出中文一般有两种解决办法: 一种需要借助FreeType库实现.FreeType库是一个完全免费(开源)的.高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件. ...
- python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解
全栈工程师开发手册 (作者:栾鹏) python的GUI界面编程,常用的几个python库包含如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包 ...
最新文章
- 推荐并简要分析一个silverlight的相册DEMO--ImageSnipper(V2)
- Django部署(Apache)
- flutter项目迁移空安全
- 更改Tomcat虚拟内存大小
- 第一篇:SpringCloud 构建微服务系统之服务注册和发现(consul)
- 埃氏筛法的一般写法(区间筛法)
- 我愿意参加Qcon 2010大会,你愿意吗?
- [7.14更新日志]CRP编译缓存和海外构建让编译健步如飞!
- Windows核心编程条件变量
- ILI9486 和 stm32F407 cortex-M4
- 采用jqueryUI创建日期选择器
- java string与byte互转
- html5音乐播放器格式midi,html5音频标签是否非正式地包含.mid(MIDI)?
- matlab errorbar 例子,科学网—【MATLAB】如何画水平errorbar - 叶瑞杰的博文
- 分析下这个LC振荡电路图
- kali linux 清华源_Kali Linux 更新源
- Flink中水位线Watermark
- html引用less文件报错,vue-cli import less文件报错
- 科学计算机调成了fx,科学计算器怎么编程
- MATLAB clc clear
热门文章
- dart系列之:如丝滑般柔顺,操作文件和目录
- Lambda表达式最佳实践
- JDK12的五大重要新特性
- Leet Code OJ 235. Lowest Common Ancestor of a Binary Search Tree [Difficulty: Easy]
- MySQL事务隔离级别的实现原理
- Spring Boot——RabbitMQ
- java.lang.reflect.Constructor
- mycat从0到成功进行分表操作
- Effective Java之坚持使用Overide注解(三十六)
- 【四种解法】剑指 Offer 39. 数组中出现次数超过一半的数字