文本图像倾斜矫正方法和系统与流程

文档序号:14686139发布日期:2018-06-14 23:27阅读:369来源:国知局

本发明实施例涉及文本图像处理技术领域,尤其是涉及一种文本图像倾斜矫正方法和系统。



背景技术:

在数字信息时代,人们会更多地依赖图像这一媒介。文本图像分析是图像处理中一个重要的分支,在光学字符识别(OpticalCharacterRecognition,OCR)领域有着重要的意义。而比较常见的文本图像倾斜问题无疑是图像应用的一大障碍。文本图像的倾斜校正是文本图像分析的重要一环,是文本图像的版面分析、行切割、字符定位与排序等的重要保障步骤。

有鉴于此,特提出本发明。



技术实现要素:

本发明实施例的主要目的在于提供一种文本图像倾斜矫正方法,其至少部分地解决了如何有效地对倾斜的文本图像进行校正的技术问题。此外,还提供一种文本图像倾斜矫正系统。

为了实现上述目的,根据本发明的一个方面,提供了以下技术方案:

一种文本图像倾斜矫正方法,所述方法至少包括:

获取待校正文本图像;

对所述待校正文本图像进行灰度化处理,得到灰度图像;

对所述灰度图像进行二值化处理,得到二值图像;

通过霍夫变换,提取所述二值图像中的直线;

根据所述直线的长度和倾斜角度,对所述直线进行过滤;

针对过滤后的直线,确定所述倾斜角度的中位数为所述待校正文本图像的倾斜角度;

根据所述待校正文本图像的倾斜角度,对所述待校正文本图像进行旋转。

根据本发明的另一个方面,还提供了一种文本图像倾斜矫正系统,所述系统至少包括:

获取单元,被配置为获取待校正文本图像;

灰度化单元,被配置为对所述待校正文本图像进行灰度化处理,得到灰度图像;

二值化单元,被配置为对所述灰度图像进行二值化处理,得到二值图像;

提取单元,被配置为通过霍夫变换,提取所述二值图像中的直线;

过滤单元,被配置为根据所述直线的长度和倾斜角度,对所述直线进行过滤;

确定单元,被配置为针对过滤后的直线,确定所述倾斜角度的中位数为所述待校正文本图像的倾斜角度;

旋转单元,被配置为根据所述待校正文本图像的倾斜角度,对所述待校正文本图像进行旋转。

与现有技术相比,上述技术方案至少具有以下有益效果:

本发明实施例通过获取待校正文本图像。接着对待校正文本图像进行灰度化处理,得到灰度图像。然后,对灰度图像进行二值化处理,得到二值图像。再通过霍夫变换,提取二值图像中的直线。又根据直线的长度和倾斜角度,对直线进行过滤。针对过滤后的直线,确定倾斜角度的中位数为待校正文本图像的倾斜角度。最后,根据待校正文本图像的倾斜角度,对待校正文本图像进行旋转。由此,本发明实施例可以有效地对各种倾斜角度的文本图像进行校正。

当然,实施本发明的任一产品不一定需要同时实现以上所述的所有优点。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其它优点可通过在所写的说明书、权利要求书以及附图中所特别指出的方法来实现和获得。

需要说明的是,发明内容部分并非旨在标识出请求保护的主题的必要技术特征,也并非是用来确定请求保护的主题的保护范围。所要求保护的主题不限于解决在背景技术中提及的任何或所有缺点。

附图说明

附图作为本发明的一部分,用来提供对本发明的进一步的理解,本发明的示意性实施例及其说明用于解释本发明,但不构成对本发明的不当限定。显然,下面描述中的附图仅仅是一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。在附图中:

图1为根据一示例性实施例示出的文本图像倾斜矫正方法的流程示意图;

图2为根据一示例性实施例示出的文本图像倾斜矫正系统的结构示意图。

这些附图和文字描述并不旨在以任何方式限制本发明的构思范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

下面结合附图以及具体实施例对本发明实施例解决的技术问题、所采用的技术方案以及实现的技术效果进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请的一部分实施例,并不是全部实施例。基于本申请中的实施例,本领域普通技术人员在不付出创造性劳动的前提下,所获的所有其它等同或明显变型的实施例均落在本发明的保护范围内。本发明实施例可以按照权利要求中限定和涵盖的多种不同方式来具体化。

需要说明的是,在下面的描述中,为了方便理解,给出了许多具体细节。但是很明显,本发明的实现可以没有这些具体细节。

需要说明的是,在没有明确限定或不冲突的情况下,本发明中的各个实施例及其中的技术特征可以相互组合而形成技术方案。

为了有效地对倾斜的文本图像进行校正,本发明实施例提供一种文本图像倾斜矫正方法。如图1所示,该方法至少可以包括:

S100:获取待校正文本图像。

S110:对待校正文本图像进行灰度化处理,得到灰度图像。

S120:对灰度图像进行二值化处理,得到二值图像。

S130:通过霍夫变换,提取二值图像中的直线。

S140:根据直线的长度和倾斜角度,对直线进行过滤。

S150:针对过滤后的直线,确定倾斜角度的中位数为待校正文本图像的倾斜角度。

S160:根据待校正文本图像的倾斜角度,对待校正文本图像进行旋转。

本发明实施例通过对待校正文本图像进行灰度化、二值化处理以及霍夫变换,提取出二值图像中的直线。然后,根据直线的长度和倾斜角度对提取出的直线进行过滤,使用图像中过滤后的直线倾斜度的中位数作为图像倾斜度的估计,并以此对图像进行旋转校正,从而可以有效地对各种倾斜的文本图像进行校正。

具体地,步骤S120还可以包括:

S122:根据灰度图像提取图像灰度矩阵。

S124:根据图像灰度矩阵,计算出图像局部对比度矩阵。

S126:利用大津法对图像局部对比度矩阵进行二值划分,得到二值图像。

其中,文本图像的局部对比度可以根据以下公式计算得到:

Con(i,j)=αC(i,j)+(1-α)(Imax(i,j)-Imin(i,j))

C ( i , j ) = I max ( i , j ) - I min ( i , j ) I max ( i , j ) + I min ( i , j ) + ϵ ]]>

其中,Con(i,j)表示(i,j)处的局部对比度值;i表示像素点的横坐标;j表示像素点的纵坐标;I(i,j)表示位置(i,j)处的灰度值,Imax(i,j)和Imin(i,j)分别表示以(i,j)为中心的局部邻域内的最大灰度值和最小灰度值;α∈(0,1),其为一个可调参数;ε是一个无穷小量,其作用是防止分母为0。

在局部对比度计算公式中,参数α可以根据以下公式计算得到:

α = p o w ( var 128 , g a m m a ) ]]>

其中,pow(x1,x2)表示指数函数,x1表示底数,x2表示指数;var表示整幅图像的标准差;gamma取值为1。

示例地,在计算图像局部对比度矩阵时,可以将局部滤波窗宽大小选取为5。

通过对图像灰度矩阵进行滤波得到图像局部对比度矩阵,可以有效地消除光照不均带来的影响,提高图像的对比度及二值可分性。

在一个可选的实施例中,在具体实施步骤S126时,具体可以包括:

S1261:获取图像局部对比度矩阵中对比度值的最大值和最小值。

S1262:设定直方图组数,并将对比度值的最大值和最小值之间的区间,按照直方图组数进行等分,使得每一像素点的局部对比度值落到相应区间内,构建直方图。

S1263:选取直方图中任意一点,并根据该点将直方图分为两部分,并计算该两部分的类内方差和类间方差。

S1264:选取直方图中类间方差除以类内方差的值最大的点作为最佳二值分割阈值点。

S1265:根据最佳二值分割阈值点将图像局部对比度矩阵划分为第一二值矩阵。

S1266:使用Canny算子在灰度图像上进行边缘检测,确定边缘矩阵。

S1267:取第一二值矩阵和边缘矩阵的交集,确定第三二值矩阵。

S1268:根据第三二值矩阵,确定二值图像。

其中,在第一二值矩阵中,0表示背景点,1表示字符点。

使用Canny算子在原始灰度图像上进行边缘检测时,可以降低Canny算子参数阈值,使得检测出来的边缘多于真实的边缘。边缘矩阵也是一个二值矩阵。其中,0表示背景点,1表示字符边缘点。

取第一二值矩阵和边缘矩阵的交集就是将两个二值矩阵都为1的位置的点设置为1,其余位置的点都设置为0,从而得到第三二值矩阵。

下面以优选实施例的方式来说明获取最佳二值分割阈值点的过程。

设定直方图组数bin=1000,获取图像局部对比度矩阵中的最大值Conmax和最小值Conmin。

然后,将Conmax和Conmin之间的区间按直方图组数进行等分,这样,图像局部对比度矩阵中的每个点按其大小落到相应的bin中。

根据以下公式可以得到所有的备选阈值:

t h r e s ( i ) = Con min + i · Con m a x - Con min b i n ]]>

其中,i=1,2,...,1000。

在选定某个阈值thres(i)后,可将直方图分为两部分,再分别计算这两部分的类内方差和类间方差

最后,根据以下公式确定最佳二值分割阈值点thres*

thres * = arg m a x i σ b 2 ( i ) σ w 2 ( i ) . ]]>

下面以优选实施例的方式来对得到第三二值矩阵的过程予以说明。

设B1表示第一二值矩阵,B2表示边缘矩阵。

其中,B2可通过以下方式获得:在文本图像的灰度矩阵上,使用Canny算子进行边缘提取,将低阈值设置为50,将高阈值设置为150,这两个阈值保证绝大部分真边缘都被提取出来。提取出的B2仍然是一个二值矩阵。

然后,进行B=B1∩B2,即将B1和B2中同为1的点表示为1(字符边缘点),其余点都表示为0(背景点)。

本领域技术人员应能理解,上述描述仅为举例,不视为对本发明保护范围的限定。

需要说明的是,上述获取到二值图像的方式仅为举例,其他任意现有的或今后可能出现的获取二值图像的方式若可适用于本发明,则也应包含在本发明的保护范围之内并在此以引用的方式结合于此。

本发明实施例使用大津法对局部对比度矩阵进行二值划分,可以有效地提升二值化的准确性。

在步骤S130中,通过霍夫变换,提取二值图像中的直线。

在二值图像中,用0表示背景点,用1表示字符点。所以,仅需对字符点进行极坐标变换。设定阈值(例如:10),将霍夫空间中大于该阈值的点作为图像空间中的直线,并反转到图像空间中相应的位置,从而完成霍夫变换。

其中,将二值矩阵中每个字符点都转化为极坐标系中的一条直线,图像空间坐标系中处于一条直线位置上的所有字符点在极坐标系中会相交于一点;然后将极坐标系中数值超过某一阈值的点标记为图像空间坐标系中对应位置处的一条直线;最后,对图像空间坐标系中的每一条直线,根据位于这条直线上的字符点的信息,就能得到对应的线段。

具体地就是,平面直角坐标系中的直线方程y=kx+b经过霍夫变换可以表示为r=x·cosθ+y·sinθ,其中r表示该直线与原点之间的距离,而θ表示该直线与x轴的夹角。这样,对于具有坐标(x0,y0)的任意一点,穿过该点的所有直线满足r(θ)=x0·cosθ+y0·sinθ。当通过霍夫变换检测直线时,对于图像中的每一个点确定穿过该点的以r,θ的形式表示的直线的集合(即对于0°到360°的范围中以一定角度间隔取样的每一个θ角计算对应的r值),穿过每一个点的直线的集合的坐标可以构成霍夫空间中的一条曲线,多条曲线在霍夫空间中的交点代表由相应点形成的直线。通常,由最多条曲线相交形成的交点代表检测出的直线。

下面以优选实施例的方式来对提取二值图像中的直线的过程进行详细说明。

假设B中有一个边缘点b1在空间坐标系(x~y坐标系)下的坐标是(x1,y1),过该点的直线用参数式方程表示为p=x1·cosθ+y1·sinθ。

空间坐标系下的点b1在极坐标系(p~θ坐标系)中被映射为一条直线p=x1·cosθ+y1·sinθ。

同理,极坐标系中的一点(p1,θ1)在空间坐标系下被映射为一条直线p1=x·cosθ1+y·sinθ1。

将B中所有边缘点bi(i=1,2,...n)都映射为极坐标系中的直线,将极坐标系中对应位置的值累加。即将这条直线过的所有点的值累加,累加的单位可以为1。

其中,处于同一条直线上的边缘点映射到极坐标系中对应的直线会交汇于一点。因此,若极坐标系中若某一点(p1,θ1)的大小为m,则说明空间坐标系下,过直线p1=x·cosθ1+y·sinθ1的边缘点的个数为m。

设置阈值为50,若m>50,将p1=x·cosθ1+y·sinθ1作为图像空间中的直线。

以上述方式统计图像中的所有直线。

本发明实施例在二值图像上进行霍夫变换时,仅对字符点进行统计,可以有效地提高直线检测的准确度,并降低算法的时间复杂度。

在通过霍夫变换获取到直线的基础上,步骤S140具体可以包括:

S142:通过统计每条直线上的字符点,确定线段,其中,以横坐标最小的字符点所在的坐标作为线段的起始坐标,以横坐标最大的字符点所在的坐标作为线段的终止坐标。

S144:判断线段上相邻字符点之间的距离是否大于预设阈值。

S146:如果线段上相邻字符点之间的距离大于距离预设阈值,则将该线段从这两个字符点处分割为两条线段。

其中,字符点也就是像素点。距离预设阈值可以为10。

在得到了线段之后,还要对这些线段进行筛选。在具体实施时,可以根据以下方式进行筛选。

在第一种实现方式中,判断线段的长度是否小于第一阈值。如果是,则删除该线段。

在第二种实现方式中,判断线段包含的字符点的数量是否小于第二阈值。如果是,则删除该线段。

在第三种实现方式中,计算每条线段的倾斜角度。确定线段的倾斜角度的邻域。判断是否有其他线段的倾斜角度值落入该邻域内。如果无,则删除该线段。

示例地,如果某条线段的长度小于70,则删除该条线段。如果某条线段包含的字符点的数量小于20,则删除该条线段。如果一条线段倾斜角度为θ,该θ的邻域可以设定为[θ-5,θ+5]。没有别的线段的倾斜角度值落在在[θ-5,θ+5]的角度范围内,则将该条线段删除。

在筛选完线段之后,可以将筛选后的线段按照倾斜角度的大小进行排序,选取出中位数的倾斜角度,并以此作为待校正文本图像的倾斜角度。

在一个可选的实施例中,根据待校正文本图像的倾斜角度,对待校正文本图像进行旋转具体可以包括:

判断待校正文本图像的倾斜角度是否大于角度预设阈值,如果是,则对待校正文本图像进行翻转。否则,不对待校正文本图像进行翻转。

优选地,角度预设阈值可以为2度。

在本实施例的一些可选的实现方式中,判断待校正文本图像的倾斜角度是否小于2度。如果是,则对待校正文本图像不进行翻转。

在本实施例的一些可选的实现方式中,判断待校正文本图像的倾斜角度是否在85度到95度之间。如果是,则对待校正文本图像进行两次翻转。

其中,倾斜角度是否在85度到95度之间,表明文本图像是一张竖拍的图像,此时,无法确定是往左翻转还是往右翻转,可以先往任意方向进行翻转。所以,对于竖拍的图像,根据其倾斜角度进行正向和逆向两次翻转。

本实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时执行或执行次序颠倒,这些简单的变化都在本发明的保护范围之内。

基于与方法实施例相同的技术构思,本发明实施例还提供一种文本图像倾斜矫正系统。如图2所示,该文本图像倾斜矫正系统20至少包括:获取单元21、灰度化单元22、二值化单元23、提取单元24、过滤单元25、确定单元26和旋转单元27。其中,获取单元21被配置为获取待校正文本图像。灰度化单元22被配置为对待校正文本图像进行灰度化处理,得到灰度图像。二值化单元23被配置为对灰度图像进行二值化处理,得到二值图像。提取单元24被配置为通过霍夫变换,提取二值图像中的直线。过滤单元25被配置为根据直线的长度和倾斜角度,对直线进行过滤。确定单元26被配置为针对过滤后的直线,确定倾斜角度的中位数为待校正文本图像的倾斜角度。旋转单元27被配置为根据待校正文本图像的倾斜角度,对待校正文本图像进行旋转。

在本发明实施例的一些可选的实现方式中,二值化单元具体可以包括:提取模块、第一计算模块和第一划分模块。其中,提取模块被配置为根据灰度图像提取图像灰度矩阵。第一计算模块被配置为根据图像灰度矩阵,计算图像局部对比度矩阵。第一划分模块被配置为利用大津法对图像局部对比度矩阵进行二值划分,得到二值图像。

在本发明实施例的一些可选的实现方式中,第一划分模块具体包括:获取模块、构建模块、第二计算模块、选取模块、第二划分模块、第一确定模块、第二确定模块和第三确定模块。其中,获取模块被配置为获取图像局部对比度矩阵中对比度值的最大值和最小值。构建模块被配置为设定直方图组数,并将对比度值的最大值和最小值之间的区间,按照直方图组数进行等分,使得每一像素点的局部对比度值落到相应区间内,构建直方图。第二计算模块被配置为选取直方图中任意一点,并根据该点将直方图分为两部分,并计算该两部分的类内方差和类间方差。选取模块被配置为选取直方图中类间方差除以类内方差的值最大的点作为最佳二值分割阈值点。第二划分模块被配置为根据最佳二值分割阈值点将图像局部对比度矩阵划分为第一二值矩阵。第一确定模块被配置为使用Canny算子在灰度图像上进行边缘检测,确定边缘矩阵。第二确定模块被配置为取第一二值矩阵和边缘矩阵的交集,确定第三二值矩阵。第三确定模块被配置为根据二值矩阵,确定二值图像。

在本发明实施例的一些可选的实现方式中,过滤单元具体包括:第四确定模块、第一判断模块、分割模块和筛选模块。其中,筛选模块包括第二判断模块和第一删除模块;或者筛选模块包括第三判断模块和第二删除模块;或者筛选模块包括第三计算模块、第五确定模块、第四判断模块和第三删除模块。其中,第四确定模块被配置为通过统计直线上的字符点,确定线段,其中,以横坐标最小的字符点所在的坐标作为所述线段的起始坐标,以横坐标最大的字符点所在的坐标作为线段的终止坐标。第一判断模块被配置为判断线段上相邻字符点之间的距离是否大于预设阈值。分割模块被配置为如果线段上相邻字符点之间的距离大于距离预设阈值,则将该线段从两个字符点处分割为两条线段。第二判断模块被配置为判断线段的长度是否小于第一阈值。第一删除模块被配置为如果线段的长度小于第一阈值,则删除该线段。或者,第三判断模块被配置为判断线段包含的字符点的数量是否小于第二阈值。第二删除模块被配置为如果线段包含的字符点的数量小于第二阈值,则删除该线段。或者,第三计算模块被配置为计算线段的倾斜角度。第五确定模块被配置为确定线段的倾斜角度的邻域。第四判断模块被配置为判断是否有其他线段的倾斜角度值落入该邻域内。第三删除模块被配置为如果其他线段的倾斜角度值落入该邻域内,则删除该线段。

在本发明实施例的一些可选的实现方式中,旋转单元具体包括:第五判断模块和翻转模块。其中,第五判断模块被配置为判断待校正文本图像的倾斜角度是否大于角度预设阈值。翻转模块被配置为如果待校正文本图像的倾斜角度大于角度预设阈值,则对待校正文本图像进行翻转。

需要说明的是:上述实施例提供的文本图像倾斜矫正系统在进行文本图像矫正时,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

上述系统实施例可以用于执行上述方法实施例,其技术原理、所解决的技术问题及产生的技术效果相似,所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

应指出的是,上面分别对本发明的系统实施例和方法实施例进行了描述,但是对一个实施例描述的细节也可应用于另一个实施例。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。本领域技术人员应该理解:本发明实施例中的模块或者步骤还可以再分解或者组合。例如上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

以上对本发明实施例所提供的技术方案进行了详细的介绍。虽然本文应用了具体的个例对本发明的原理和实施方式进行了阐述,但是,上述实施例的说明仅适用于帮助理解本发明实施例的原理;同时,对于本领域技术人员来说,依据本发明实施例,在具体实施方式以及应用范围之内均会做出改变。

需要说明的是,本文中涉及到的流程图或框图不仅仅局限于本文所示的形式,其还可以进行划分和/或组合。

需要说明的是:附图中的标记和文字只是为了更清楚地说明本发明,不视为对本发明保护范围的不当限定。

术语“包括”、“包含”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。

术语“如果”可解释为是指“在……时”或“在……后即刻”,其视上下文而定。

术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。第一、第二等词语用来表示名称,并不表示任何特定的顺序。

本发明的各个步骤可以用通用的计算装置来实现,例如,它们可以集中在单个的计算装置上,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备或者多处理器装置,也可以分布在多个计算装置所组成的网络上,它们可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。因此,本发明不限于任何特定的硬件和软件或者其结合。

本发明提供的方法可以使用可编程逻辑器件来实现,也可以实施为计算机程序软件或程序模块(其包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件或数据结构等等),例如根据本发明的实施例可以是一种计算机程序产品,运行该计算机程序产品使计算机执行用于所示范的方法。所述计算机程序产品包括计算机可读存储介质,该介质上包含计算机程序逻辑或代码部分,用于实现所述方法。所述计算机可读存储介质可以是被安装在计算机中的内置介质或者可以从计算机主体上拆卸下来的可移动介质(例如:采用热插拔技术的存储设备)。所述内置介质包括但不限于可重写的非易失性存储器,例如:RAM、ROM、快闪存储器和硬盘。所述可移动介质包括但不限于:光存储介质(例如:CD-ROM和DVD)、磁光存储介质(例如:MO)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存储器的媒体(例如:存储卡)和具有内置ROM的媒体(例如:ROM盒)。

本发明并不限于上述实施方式,在不背离本发明实质内容的情况下,本领域普通技术人员可以想到的任何变形、改进或替换均落入本发明的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1