一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分割椭圆形图案中环绕文字的方法和装置

2022-07-02 12:44:36 来源:中国专利 TAG:


1.本发明涉及数字图像处理与识别技术领域,特别涉及一种分割带有椭圆边框的椭圆形单色简单图案中的水平文字和环绕文字的方法和装置。


背景技术:

2.随着科学技术的发展,目前互联网中的主要信息载体由单纯的文本转为了丰富多样的图片,这些图片往往囊括许多重要的文字信息,但又无法像普通文本那样直接提取,直接人工识别虽然精准,但效率较低,无法应对海量的图片;为了让计算机替我们进行高效的图片文本识别,必须要采用一些技术手段,即ocr技术,这种技术将分割文本与识别文本的流程合二为一,能够直接从图片中将文本识别出来。而ocr实质又可分为基于图形学和形态学方法分割文字,然后再进行识别的传统ocr,以及目前非常流行的基于深度学习方法的ocr。
3.事实上,虽然图片的样式五花八门,但总体而言,需要提取文字的图案往往为矩形或椭圆形,例如商标或印章。且其文字排布也具有一定规律性。对于简单的矩形图案,可以通过投影法将文本分割出来;对于圆形,为了处理环绕文字,可以利用极坐标变换将文本分割出来;而目前针对椭圆的文本分割方法很少,主要是因为极坐标变换应用在椭圆上效果并不好,会带来失真和扭曲,分割效果差,也影响后续的识别。深度学习方法效果很好,但速度较慢,对设备有要求,且需要大量标注好的数据进行训练。为了更好更快的检测出这些简单图案中的文本信息,考虑到效率和成本问题,应该采用一种简单高效的方法,从这些简单图案中分割出文本,然后再对其进行识别。


技术实现要素:

4.本发明的目的在于提供一种分割环绕文字的方法和装置。
5.针对上述目的,本发明采用以下技术方案:
6.一种分割带有椭圆边框的椭圆形图案中的环绕文字的方法,包括:
7.提供需要提取环绕文字的带有椭圆边框的椭圆形图案;
8.将图案转为灰度图,将灰度图的前景和背景分隔开,得到二值化图像;
9.获取图像上所有的轮廓,并拟合其中的每个轮廓,从中获得与椭圆边框对应的椭圆形状;
10.根据获得的椭圆形状去除椭圆边框,得到不带边框的椭圆图像;
11.判别图像中是否有水平文字;若有水平文字,则对图像进行校正,分割并提取水平文字,并去除水平文字;
12.分割图像中的环绕文字。
13.作为本公开的优选实施方式,通过拟合轮廓得到与椭圆边框对应的椭圆轮廓形状,将获得的椭圆轮廓形状进行调整,对该椭圆轮廓形状进行旋转、平移和/或缩放变换,取包含前景像素点数量最多的形状作为与椭圆边框对应的椭圆形状,然后根据预定比例,取
一个比该椭圆形状小且与其同心的第一同心椭圆,只保留第一同心椭圆内的区域,从而去除椭圆边框。
14.作为本公开的优选实施方式,根据预定比例,取一个比该椭圆形状小且与其同心的第二同心椭圆,计算该第二同心椭圆区域内的最大连通域面积,如果其大于设定的阈值,则判别检测到了水平文字。
15.作为本公开的优选实施方式,若判别图像中有水平文字,对第二同心椭圆区域进行图像y轴方向的投影,投影值为前景像素数量,对该椭圆区域进行一定次数的旋转,选取使零投影值最多的旋转角度,作为图像的粗略矫正角度;图像根据粗略矫正角度粗略旋转后,选取一个矩形,在该矩形区域内进行图像y轴方向的投影,投影值为前景像素数量,对该矩形区域进行预定次数的旋转,选取使零投影值最多的旋转角度,作为图像的最佳角度。
16.作为本公开的优选实施方式,图像校正之后,对该矩形区域进行图像y轴方向的投影,投影值为前景像素数量,利用一种自适应阈值算法获得一个合理的阈值,选取大于该阈值的投影值作为横字区域,形式为[[ya1,ya2],[ya3,ya4],...];
[0017]
对于横字区域,对其作图像x轴方向上的投影,剔除靠近和超过边框范围的投影值,用一种自适应阈值算法获得一个合理的阈值,选取大于该阈值的投影值作为文字区域,其形式为:对于横字区域[ya1,ya2],其内部文字可表示为:[[xb1,ya1],[xb2,ya2],...],最终实现对水平文字的分割并去除。
[0018]
作为本公开的优选实施方式,分割环绕文字的方法如下:根据预定比例,取一个比该椭圆形状小且与其同心的第三同心椭圆,计算该第三同心椭圆每个点的切线方程,计算每个切线方程的垂线方程,由此计算垂线方程对应的垂线与第三同心椭圆的交点,并得到垂线段,垂线段为第三同心椭圆上的点和所求得交点的连线,计算垂线段上的前景像素点数量,以此作为环形投影直方图,利用自适应阈值算法获得一个合理的阈值,选取大于该阈值的投影值作为环形文字区域,根据投影获得环形文字的垂线段边界,将环形文字分割出来;其中每个环形文字区域的边界为左右两个垂线段。
[0019]
作为本公开的优选实施方式,所述自适应阈值算法包括:选取一系列候选阈值,大于该候选阈值的投影值作为前景区域,设选取该候选阈值可初步分割出的前景区域数量为n,分割出的区域每个区域大小的平均差距为d,则取使αn βd最大时的候选阈值为最优划分的阈值,即合理的阈值,其中α和β为设定好的系数。
[0020]
作为本公开的优选实施方式,通过数值逼近法或离散求解法求取交点,其中离散求解法包括:通过垂线方程计算垂线与第三同心椭圆的交点时,不解该垂线方程的解析解,而是将第三同心椭圆上的点代入垂线方程中,取误差最小的点作为交点。
[0021]
作为本公开的优选实施方式,计算每个环形文字区域左右两个垂线段边界的外积,根据外积正负判断夹角为锐角还是钝角,设垂线方程为ax by c=0,法向量为(a,b),依据垂线与其法向量的外积判断是取垂线的上半平面还是下半平面,从而实现对环形文字区域的分割。
[0022]
一种用于执行前述方法的装置,包括:
[0023]
图像预处理模块,用于将图案转为灰度图,将灰度图的前景和背景分隔开,得到二值化图像;
[0024]
椭圆拟合及去除边框模块模块,用于获取图像上所有的轮廓,并拟合其中的每个
轮廓,从中获得与椭圆边框对应的椭圆形状,并根据获得的椭圆形状去除椭圆边框,得到不带边框的椭圆图像;
[0025]
分割并去除水平文字模块,用于判别图像中是否有水平文字;若有水平文字,则对图像进行校正,分割并提取水平文字,并去除水平文字;以及
[0026]
分割环绕文字模块,用于分割图像中的环绕文字。
[0027]
本发明的有益效果包括:本发明相对于现有技术具有如下的有益效果:本发明针对一般椭圆形图案既包含水平文字,又包含环绕文字,且环绕文字与水平文字的排布具有一定规律的特点,设计了一种简单地分割水平文字和环绕文字的方法,该方法考虑到了椭圆图案中会存在水平文字,提出了一种简单办法提取水平文字并将其消除,以便对环绕文字的提取,提出一种采用椭圆上的点的切线的垂线对椭圆进行投影的方法,解决了以往一般采用极坐标方法对椭圆投影,导致文字失真的问题,在准确度上高于极坐标投影方法,在分割效果接近的情况下,速度远高于采用深度学习的文字分割方法,对设备没有特殊要求,非常适用于分割各类常见的简单带文字的单色椭圆形图案上的文字,例如椭圆形logo、印章等简单的单色椭圆形图案。
附图说明
[0028]
图1为本发明的系统结构框图。
[0029]
图2为本发明的详细流程图。
具体实施方式
[0030]
为便于更好地理解本发明的目的、结构、特征以及功效等,现结合附图和具体实施方式对本发明作进一步说明。应注意的是,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031]
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0032]
如图1所示,本发明较佳实施例的一种分割带有椭圆边框的椭圆形单色简单图案中的水平文字和环绕文字的装置,包括四个模块,第一个模块为图像预处理模块,负责获取包含椭圆图案的原始图片,筛除无关颜色图案,经过一些预处理操作后,得到二值化图像;第二个模块为椭圆拟合及去除边框模块,负责找出图片中椭圆图案,并将椭圆图案的边框去除,以便后续分割文字;第三个模块为分割并去除水平文字模块,功能是判断是否存在水平排列的文字,如果存在,就对图像进行矫正,使水平排列的文字与图像x轴平行,然后将水平文字分割出来,最后为了便于分割环绕文字,将去除水平文字;第四个模块为分割环绕文字模块,负责将椭圆图案中环绕边框分布的文字分割出来。该装置可以有效将带有椭圆边框的椭圆形单色简单图案中水平文字和环绕文字分割出来。
[0033]
本发明还提供一种分割带有椭圆边框的椭圆形单色简单图案中的水平文字和环绕文字的方法。图2所示为本发明的详细步骤图。
[0034]
本公开的方法首先提供需要提取环绕文字的带有椭圆边框的椭圆形图案,将图片的路径,图案的颜色、大小范围、长宽比范围以及dpi信息以json格式传入图像预处理模块。
[0035]
图像预处理模块将根据图案的颜色类别选取合适的hsv范围,色调h,饱和度s,亮度v的取值范围均根据具体的鉴别情况决定,从而去除无关的色彩图案,然后将图片并转为灰度图。
[0036]
为了排除图像上的干扰,采用高斯滤波核对图像进行高斯模糊,对图像轻微的腐蚀,然后再膨胀,从而消除一些小的噪声和细线的干扰。然后利用霍夫变换检测图上的直线,将检测到的直线去除,从而排除一些较粗的直线的干扰。利用otsu算法获取一个阈值,利用该阈值对灰度图进行二值化,从而将灰度图的前景与背景分隔开,得到二值化图像。
[0037]
再利用canny算法,获取图片上所有的轮廓,每个轮廓为一系列点的数组。
[0038]
对于图中的所有轮廓,检查轮廓所包围区域面积的大小和长宽比,如果大小与长宽比与预设条件相差较大,则认为不匹配,将其筛除,预设值与输入时提供的图案大小范围及长宽比范围等信息有关。然后利用最小二乘法拟合椭圆轮廓,得到每个椭圆轮廓对应的椭圆轮廓形状。将椭圆轮廓形状信息((x,y),(w,h),angle)记录下来,椭圆轮廓形状信息被记录为((x,y),(w,h),angle),其中(x,y)是椭圆中心坐标,(w,h)为椭圆的两个轴长,angle是椭圆的偏转角。如果所得椭圆轮廓形状所穿过的前景区域大于阈值,则认为拟合成功,否则认为失败。由此可以得到与椭圆形图案的椭圆边框对应的椭圆轮廓形状。该椭圆轮廓形状即可视为椭圆边框的形状。
[0039]
然而,由于拟合的形状具有一定误差,因此需要对形状进行校正。根据图像大小,设置一系列由平移、旋转和缩放构成的变换组合,枚举这些组合,对椭圆轮廓形状进行相应变换,创建一个计数器,再创建一个当前最大计数器和最佳椭圆结果保存器,遍历椭圆上的点,若当前点像素值为255,即前景像素,则计数器加一。如果计数器大于最大计数器的值,则令最大计数器的值等于计数器,并用最佳椭圆结果保存器保存当前的变换后的椭圆轮廓形状。最终最佳椭圆结果保存器中保存的结果即为想要得到的拟合得最好的椭圆形状。这个形状对应到椭圆形图案的椭圆边框的外侧轮廓。
[0040]
然后根据预定比例,取一个比该椭圆形状小且与其同心的第一同心椭圆,只保留第一同心椭圆内的区域,从而去除椭圆边框。得到第一同心椭圆的具体方法是:根据图像大小,设置一系列缩进值,枚举这些缩进值,对上一步得到的新椭圆形状进行相应的长轴和宽轴的缩进,创建一个计数器,再创建一个当前最大计数器和最佳椭圆结果保存器,遍历椭圆上的点,若当前点像素值为255,即前景像素,则计数器加一。如果计数器大于最大计数器的值,则令最大计数器的值等于计数器,并用最佳椭圆结果保存器保存当前的变换后的椭圆形状。最终最佳椭圆结果保存器中保存的结果即为想要得到的拟合得最好的椭圆形状,即第一同心椭圆。这个形状对应到椭圆形图案的椭圆边框的内侧轮廓。
[0041]
将上一步所得的椭圆边框内侧(即第一同心椭圆)里的所有像素点置为背景像素值0,从而实现去除椭圆边框及边框外的区域。由于边框信息在处理其他信息时可能是必要的,因此会用一个与图像大小相同的矩阵mask记录边框所在位置,mask矩阵中边框所在位置的值为1,其他位置均为0。
[0042]
根据预定比例,取一个比该椭圆形状小且与其同心的第二同心椭圆,计算该第二同心椭圆区域内的最大连通域面积,如果其大于设定的阈值,则判别检测到了水平文字。例
如,可以将第二同心椭圆的长轴和短轴设定为图案的椭圆的长轴和短轴的一半。椭圆图案的文字排布具有特点,设椭圆图案的椭圆形状的宽轴和长轴分别为w和h,则环绕文字一般位于一个宽轴和长轴分别为w/2和h/2的椭圆之外,环绕椭圆均匀排布。因此,取一个宽轴和长轴分别为w/2和h/2的椭圆,检测该椭圆内部区域的所有连通域,根据图案大小设定一个阈值,如果该区域内的最大连通域面积大于设定的阈值,则认为该区域内存在水平排列的文字或其他形状。如果有水平文字,进入分割水平文字的阶段,如果没有,则直接跳转到分割环绕文字的阶段。
[0043]
若有水平文字,则首先要对图像进行矫正。设椭圆图案的椭圆形状的宽轴和长轴分别为w和h,取一个宽轴和长轴分别为w/2和h/2的第二同心椭圆,对该椭圆区域进行0到360度之间的旋转,如果椭圆图案是圆形,角度步长设为10度,否则设为180度,创建一个计数器和最优角度结果保存器,每次旋转后,在该椭圆区域内沿着图像y轴方向,将每个y坐标上所有像素点相加,得到每个y坐标对应的投影值,则可得到该椭圆区域关于图像y轴方向的投影直方图,设直方图上投影值为0的坐标数量为nz,如果nz大于计数器,则设置计数器的值为nz,并将最优角度结果保存器的值设为当前旋转角度,则最后最优角度结果保存器的值即为所求得最优角度,然后对图像进行该角度的旋转,从而实现对图像的粗略矫正。
[0044]
在经过上一步粗略矫正后的基础上,选取一个矩形,设图像中心坐标为(center_x,center_y),图像的椭圆的宽高分别为w和h,该矩形的左上角坐标为(center_x-w/2*0.35,center_y-h/2*0.4),右下角坐标为(center_x w/2*0.35,center_y h/2*0.8),对该矩形区域进行-10度到10度之间的旋转,创建一个计数器和最优角度结果保存器,每次旋转后,在该矩形区域内沿着图像y轴方向,将每个y坐标上所有像素点相加,得到每个y坐标对应的投影值,则可得到该矩形区域关于图像y轴方向的投影直方图,设直方图上投影值为0的坐标数量为nz,如果nz大于计数器,则设置计数器的值为nz,并将最优角度结果保存器的值设为当前旋转角度,则最后最优角度结果保存器的值即为所求得最优角度,然后对图像进行该角度的旋转,从而实现对图像的精细矫正。
[0045]
若有水平文字,在前述图像已矫正的基础上,选取一个矩形,该矩形与前述的矩形完全一致,在该矩形区域内进行图像y轴方向的投影。设计一个函数findmountain,该函数以投影数组作为输入,创建一个状态sta初始化为0,创建一个长度为2的数组m,创建一个空栈mountains,遍历投影数组,如果sta等于1,且当前元素不是第一个元素且当前元素值为0且前一个元素大于0,则设m[0]=当前元素的索引,置sta=0,并将m压入栈mountains中;如果sta等于0,且当前元素不是最后一个元素且当前元素为0且下一个元素大于0,则设m[1]=当前元素的索引,置sta=1。则最终mountains的每个元素均为长度为2的数组,对应着一个图像y轴上的区域,即为横字区域所对应的y坐标区域,形式为[[ya1,ya2],[ya3,ya4],...]。
[0046]
在已获得水平文字区域所对应y坐标区域[[ya1,ya2],[ya3,ya4],...]后,在每个区域[yi,yj]上作图像x轴方向上的投影,剔除靠近和超过边框范围的投影,消除环绕文字的干扰。然后同样对图像x轴方向上的投影数组使用函数findmountain,最终得到分割好的水平文字区域,其形式为:对于横字区域[ya1,ya2],其内部文字可表示为:[[xb1,ya1],[xb2,ya2],...]。故区域[xi,yj]即为分割出的水平文字。提取水平文字后,将水平文字去除,便于接下来提取环绕文字。
[0047]
设计一种自适应阈值算法,封装为一个函数,函数的参数为投影直方图对应的数组,数组长度为坐标范围,数组值为每个坐标对应的投影值。取百分比5、10、15、20、25、30作为候选阈值,创建一个计数器和最优阈值结果保存器,遍历每个候选阈值,大于当前阈值的投影值作为前景区域,设选取该阈值可初步分割出的前景区域数量为n,分割出的区域每个区域大小的平均差距为d,计算得分score=αn βd,其中α和β为设定好的系数,若score大于计数器,则设计数器的值为score,并将阈值保存在最优阈值结果保存器中,则最终最优阈值保存器中的阈值即为最优划分阈值,函数返回该最优阈值与其分割结果。
[0048]
根据预定比例,取一个比该椭圆形状小且与其同心的第三同心椭圆。例如,取一个稍小的同心椭圆,宽轴和长轴分别为w-min(w,h)/4和h-min(w,h)/4,计算该同心椭圆每个点(x1,y1)的切线方程:
[0049]
(x*x1)/w2 (y*y1)/h2=1
[0050]
则每个切线方程的垂线方程为:
[0051]
((x-x1)*y1)/h
2-((y-y1)*x1)/w2=0
[0052]
对于每个点(x1,y1),计算该点的切线的垂线与图案椭圆的交点,由于该方程的求解非常复杂,较为耗时,因此采用一种做法去求得方程的近似离散解,具体做法为:将椭圆上的点都代入垂线方程中,取结果最接近0的点作为最佳近似离散解,由于垂线线与椭圆有两个交点,因此取与点(x1,y1)最近的点即可。如果图案较大,则用数值逼近取代上述的离散求解方法。连接同心椭圆上的点和垂线与图案椭圆的交点,获得一系列垂线段。
[0053]
遍历所有垂线段,计算每个垂线段上的像素值为255的点即前景像素点的数量,然后除以该垂线段区域的实际像素数(一个宽度为1的直线段在计算机图像中所占的像素不一定等于直线段的长度),即为垂线段所对应的投影值,从而可以得到一个环形投影直方图。直方图的每个坐标对应一个垂线段。因为环绕文字往往尾部挨得较近,可能会出现粘连,因此利用前述的自适应阈值算法获得一个合理的阈值,选取大于该阈值的投影值作为环形文字区域,并将文字区域分割出来,显然,每个区域的边界为两个垂线段。
[0054]
计算两个边界垂线段的外积,外积为负说明二者的夹角是钝角,反之说明二者的夹角是锐角。
[0055]
为了去除环形区域边界两侧的区域,设垂线方程为ax by c=0,其法向量为(a,b),计算垂线与法向量的外积,当夹角为锐角,对于左边界,如果外积大于0,需去除垂线上半平面,反之亦然;对于右边界,如果外积大于0,需去除垂线下半平面,反之亦然。当夹角为钝角,则与锐角的情况相反。这样就能将边界两侧的非文字区域去除。然后分割提取环绕文字。
[0056]
为了去除环形区域对面的区域,根据左右边界可得区域中心所对应的垂线,计算该垂线过图像中心的法线,计算垂线与该法线的外积,如果外积小于等于0,当该法线与它的法向量的外积小于等于0时,去掉法线的的上半平面,反之亦然;外积大于0时与上述情况相反。这样就可以完全去除区域外的一切,余下的就是要提取的文字区域。
[0057]
根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图来描述本发明。应当理解,流程图和/或框图中的每个过程和/或块,以及流程图和/或框图中的过程和/或块的组合可以通过计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机、嵌入式处理器或其他可编程数据处理设备的处理器生成机器,以
便计算机或其他计算机的处理器执行指令。可编程数据处理设备可生成供使用的设备,它是实现流程图中的一个或多个进程和/或框图中的一个或多个块中规定的功能的设备。
[0058]
以上详细说明仅为本发明之较佳实施例的说明,非因此局限本发明之专利范围,所以,凡运用本创作内容所为之等效技术变化,均包含于本创作之专利范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献