admin管理员组文章数量:1531738
2024年6月15日发(作者:)
通过OpenCV和Python进行文本倾斜校正
本文所展示的是一个由Pyhton实现的文本倾斜校正的脚本,在实现中使用到了
OpenCV和Python的图像处理函数。 假设我们有一幅图像,图像中的文本被旋转了
一个未知的角度。为了对文字进行角度的校正,我们需要完成如下几个步骤:1、检测出图
中的文本范围2、计算出文本被旋转的角度3、将图像旋转特定的角度 本文所介绍的
文本角度校正算法一般被用于自动化文档分析。但是,这个过程本身可以有其他的应用。
通过OpenCV和Python实现文本角度校正 下文将详细介绍如何使用Python和
OpenCV中的基本图像处理函数实现文本的角度校正。 首先,我们将创建一个简单的
案例用于检测我们的校正方案。我们将通过Pyhton和OpenCV编写一个在图片中自动识
别并校正文本角度的程序。一个简单案例 在下面的例子中,我们准备了一个简单的测
试案例。在这个案例中有四幅图,图中的文本被旋转了特定的角度。图1 我们的测试案例,
下面我们将用OpenCV和Python对图中文本的角度进行校正 这四幅图对应了如下四
个文件文件名的前半部分代表了图中文本被旋转的方向,其中neg表示逆时针旋转,pos
表示顺时针旋转。文件名的第二部分表示被旋转的具体角度。 我们的算法将识别出图
像被旋转的方向和角度,进而对其进行校正。下面,我们将介绍如何实现上述功能。基于
OpenCV和Pyhton的文本倾斜校正 首先,我们建立一个新文件,并命名为
correct_,并在文件中插入如下代码:代码2—4行引入需要的Pyhton包。我们
通过引入cv2调用OpenCV,假设您已经在系统中安装了OpenCV,请参考对应的
OpenCV install tutorial在进行系统的配置。下面我们对代码7—10行进行解析,我们在
此只需要一个参数,即--image,该参数代表了图像的路径。在代码的第13行,图像被从
磁盘读入。下一步我们将从图像中识别出文本
在我们的图像中,文字是黑色的而背景是浅色的。然而,为了正确地执行我们的算法,
我们需要将图像反转(即将文字变成浅色的而背景变成深色的)。因为在计算机上执行图像
操作的时候,一般前景色为浅色,而背景(图像中我们不关心的内容)为黑色。 上述
代码23行和24行我们对图像颜色进行了二值化处理。图2 经过二值化处理和颜色反转
后的图像有了这个二值化的图像,我们可以计算出包含了被旋转文本的最小边框。
通过第30行代码找出二值图像中包含前景色的部分的(x,y)坐标。 我们将这些坐标
作为参数传递给函数aRect,该函数将给出包含着整个文字区域矩形边框,这
个边框的旋转角度与图中文本的旋转角度一致。 函数aRect将返回一个
[-90,0)区间内的角度。代码37行和38行处理返回的角度小于-45度的情况,在这样的情
况下,我们需要在原来的角度上增加90度然后在进行校正。当返回的角度大于-45度的时
候,我们直接对角度进行回转。 我们已经确定了文本的倾斜角度,现在,我们需要执
行一个仿射变换对倾斜角度进行校正。代码第46行和47行确定了图像的中心坐标(X,Y),
我们中心坐标和旋转角作为参数传递给函数ationMatrix2D(代码第48行)。
所得到的旋转矩阵M将在代码第49行和50行执行确切的变换。最后,我们在屏幕上显
示我们的结果。代码第53行,我们将旋转的角度显示在图像上,以标示所输出的图像对
应怎样的旋转角度。代码57行至60行用于显示输出的图像。倾斜角度校正结果有了上述
结果,我们通过以下命令来校正图像neg_的角度:
图3 使用OpenCV和Python对文本进行倾斜校正从图中我们可以看到,输入的图
像被逆时针旋转了4度。我们的程序检测出了这个角度,并对其进行了校正。下面是另一
个例子,这一例子中逆时针倾斜的角度为28度。图4 使用OpenCV和Python对文本进
行倾斜校正再一次,我们的算法对输入的图像进行了校正。这次我们尝试一个顺时针旋转
的倾斜角:图5 使用OpenCV和Python对文本进行倾斜校正最后,我们尝试一个41度
的大角度倾斜:图6 使用OpenCV和Python对文本进行倾斜校正无论怎样的倾斜角度,
我们的算法都能够使用OpenCV和Python进行倾斜角的校正。总结 在今天的教程中,
我们使用Python进行了倾斜角度的校正。 所介绍的算法简洁明了,使用了一些基本
的图像处理技术如二值化、计算最小旋转矩形和使用仿射变换对角度进行校正。 我们
可以将这项技术使用到自动文档分析中,通过将所介绍的方法应用到文档扫描件上,对倾
斜角度进行校正,然后利用OCR技术将图像中的文本转化成计算机中的文本字符。
我们希望您喜欢这个教程。 英文原文:
/2017/02/20/text-skew-correction-opencv-python
/
译者:wlzmmm
版权声明:本文标题:通过OpenCV和Python进行文本倾斜校正 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1718432151a680012.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论