发明内容
本发明的目的在于克服现有技术的缺陷,提供一种环形字符分割识别方法及其系统,解决了极坐标变换法处理环形字符后容易造成字符扭曲、变形的问题,通过分割字符并旋转字符,以防止字符扭曲、变形,减少识别过程中识别错误的概率,并提升字符识别的准确度和稳定性。
实现上述目的的技术方案是:
本发明提供了一种环形字符分割识别方法,包括如下步骤:
获取环形字符的图像,并对图像进行预处理,确定图像中环形字符的圆心;
根据环形字符中每个字符的长度和宽度提取环形字符以获取每个字符的字符图像并确定字符图像的中心,进而计算得出字符图像的中心和圆心的连线与铅垂方向的角度;
根据计算得出的角度以圆心为旋转中心旋转字符图像,并将经旋转的字符图像依次排列以形成水平分布的字符串,进而对字符串进行识别以获取识别结果。
本发明提出了一种环形字符分割识别方法,通过提取环形字符以获取每个字符的字符图像,进而计算字符图像的中心和圆心的连线与铅垂方向的角度,并对应旋转字符图像,使得字符图像排列形成水平分布的字符串,能够方便识别,这种方式精确度较高,解决了极坐标变换法处理环形字符后容易造成字符扭曲、变形的问题,通过分割字符并旋转字符,以防止字符扭曲、变形,减少识别过程中识别错误的概率,并提升字符识别的准确度和稳定性。
本发明环形字符分割识别方法的进一步改进在于,该环形字符设于圆形的部件的表面且环形字符的圆心与部件的圆心相重合,确定圆心时,还包括:
将图像进行二值化分割,进而遍历图像的轮廓,以得出部件的轮廓,进而根据部件的半径确定圆心。
本发明环形字符分割识别方法的进一步改进在于,计算角度时,还包括:
建立原点O与图像的左顶角相重合的XOY坐标系,且X轴沿水平方向向右延伸,Y轴沿铅垂方向向下延伸;
确定圆心在XOY坐标系中的坐标(cX,cY),确定字符图像的中心在XOY坐标系中的坐标(zX,zY),进而利用反三角函数计算得出字符图像的中心和圆心的连线与铅垂方向的角度。
本发明环形字符分割识别方法的进一步改进在于,计算角度的公式如下:
其中ocrAngle为字符图像的中心和圆心的连线与铅垂方向的角度,cX为圆心的横坐标,cY为圆心的纵坐标,zX为字符图像的中心的横坐标,zY为字符图像的中心的纵坐标。
本发明环形字符分割识别方法的进一步改进在于,旋转字符图像后,还包括:
确定旋转后的字符图像中字符的左顶角的坐标,进而根据字符的宽度和高度对字符进行切割以形成矫正图像,将每个字符的矫正图像依次排列,以形成水平分布的字符串。
本发明环形字符分割识别方法的进一步改进在于,确定旋转后的字符图像中字符的左顶角的坐标时,还包括:
rectX=cX-width×0.5
rectY=cY-ocrRadius-height×0.5
其中ocrRadius为所述圆心至所述字符图像的中心的距离,zX为旋转前字符图像的中心的横坐标,cX为圆心的横坐标,zY为旋转前字符图像的中心的纵坐标,cY为圆心的纵坐标,width为字符的宽度,height为字符的高度,rectX为旋转后字符左顶角的横坐标,rectY为旋转后字符左顶角的纵坐标。
本发明环形字符分割识别方法的进一步改进在于,该环形字符相对设置有两道,且环形字符分别位于圆形的上、下两侧或左、右两侧,旋转字符图像前,还包括:
判断两道环形字符的设置方向;
若环形字符分别位于圆心的上、下两侧,则将位于圆心上方的环形字符的字符图像按照对应的角度大小从大到小依次排序,将位于圆心下方的环形字符的字符图像按照对应的角度大小从小到大依次排序,以确定每个字符的次序,从而根据该次序排列经旋转的字符图像以形成字符串;
若环形字符分别位于圆心的左、右两侧,则将两道环形字符的字符图像均按照对应的角度大小从大到小依次排序,以确定每个字符的次序,从而根据该次序排列经旋转的字符图像以形成字符串。
本发明环形字符分割识别方法的进一步改进在于,判断两道环形字符的设置方向时,还包括:
计算得出每个字符图像的角度后,计算角度的平均值;
若角度的平均值小于60°,则环形字符分别位于圆心的上、下两侧;
若角度的平均值大于等于60°,则环形字符分别位于圆心的左、右两侧。
本发明环形字符分割识别方法的进一步改进在于,旋转字符图像前,还包括:
当环形字符分别位于圆心的上、下两侧时,比较字符图像的中心的纵坐标与圆心的纵坐标的大小,若字符图像的中心的纵坐标小于圆心的纵坐标,则字符图像位于圆心的上方,若字符图像的中心的纵坐标大于圆心的纵坐标,则字符图像位于圆心的下方;
当环形字符分别位于圆心的左、右两侧时,比较字符图像的中心的横坐标与圆心的横坐标的大小,若字符图像的中心的横坐标小于圆心的横坐标,则字符图像位于圆心的左侧,若字符图像的中心的横坐标大于圆心的横坐标,则字符图像位于圆心的右侧。
本发明还提供了一种环形字符分割识别系统,包括:
图像获取模块,以获取环形字符的图像;
与图像获取模块通讯连接的图像处理模块,以对图像进行预处理,确定图像中环形字符的圆心,并根据环形字符中每个字符的长度和宽度提取环形字符以获取每个字符的字符图像,确定字符图像的中心;
与图像处理模块连接的角度计算模块,以计算字符图像的中心和圆心的连线与铅垂方向的角度;
与角度计算模块连接的字符处理模块,以根据计算得出的角度以圆心为旋转中心旋转字符图像,并将经旋转的字符图像依次排列以形成水平分布的字符串;以及
与字符处理模块连接的识别模块,以对字符串进行识别,从而获得识别结果。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
本发明提供了一种环形字符分割识别方法,通过提取环形字符以获取每个字符的字符图像,进而计算字符图像的中心和圆心的连线与铅垂方向的角度,并对应旋转字符图像,使得字符图像排列形成水平分布的字符串,能够方便识别,这种方式精确度较高,解决了极坐标变换法处理环形字符后容易造成字符扭曲、变形的问题,通过分割字符并旋转字符,以防止字符扭曲、变形,减少识别过程中识别错误的概率,并提升字符识别的准确度和稳定性。下面结合附图对本发明环形字符分割识别方法及其系统进行说明。
参阅图1,图1为本发明环形字符分割识别方法中环形字符分别位于圆心的上、下两侧时的识别示意图。下面结合图1,对本发明环形字符分割识别方法进行说明。
如图1和图2所示,本发明提供了一种环形字符分割识别方法,包括如下步骤:
获取环形字符的图像,并对图像进行预处理,确定图像中环形字符的圆心;
根据环形字符中每个字符的长度和宽度提取环形字符以获取每个字符的字符图像并确定字符图像的中心,进而计算得出字符图像的中心和圆心的连线与铅垂方向的角度;
根据计算得出的角度以圆心为旋转中心旋转字符图像,并将经旋转的字符图像依次排列以形成水平分布的字符串,进而对字符串进行识别以获取识别结果。
具体的,该环形字符设于圆形的部件的表面且环形字符的圆心与部件的圆心相重合,确定圆心时,还包括:
将图像进行二值化分割,进而遍历图像的轮廓,以得出部件的轮廓,进而根据部件的半径确定圆心。
较佳地,遍历轮廓,并根据半径筛选出半径偏差±5%的特征,根据圆度将满足0.95的特征保留,求得圆,并计算得出圆心位置。
进一步的,计算角度时,还包括:
建立原点O与图像的左顶角相重合的XOY坐标系,且X轴沿水平方向向右延伸,Y轴沿铅垂方向向下延伸;
确定圆心在XOY坐标系中的坐标(cX,cY),确定字符图像的中心在XOY坐标系中的坐标(zX,zY),进而利用反三角函数计算得出字符图像的中心和圆心的连线与铅垂方向的角度。
具体的,计算角度的公式如下:
其中ocrAngle为字符图像的中心和圆心的连线与铅垂方向的角度,cX为圆心的横坐标,cY为圆心的纵坐标,zX为字符图像的中心的横坐标,zY为字符图像的中心的纵坐标。
进一步的,旋转字符图像后,还包括:
确定旋转后的字符图像中字符的左顶角的坐标,进而根据字符的宽度和高度对字符进行切割以形成矫正图像,将每个字符的矫正图像依次排列,以形成水平分布的字符串,对旋转后的字符图像进一步切割以防止排列时字符图像扭曲变形,能够提升字符串的识别率,降低错误率。
具体的,确定旋转后的字符图像中字符的左顶角的坐标时,还包括:
rectX=cX-width×0.5
rectY=cY-ocrRadius-height×0.5
其中ocrRadius为所述圆心至所述字符图像的中心的距离,zX为旋转前字符图像的中心的横坐标,cX为圆心的横坐标,zY为旋转前字符图像的中心的纵坐标,cY为圆心的纵坐标,width为字符的宽度,height为字符的高度,rectX为旋转后字符左顶角的横坐标,rectY为旋转后字符左顶角的纵坐标。
作为本发明的一较佳实施方式,结合图1和图2所示,该环形字符相对设置有两道,且环形字符分别位于圆形的上、下两侧或左、右两侧,旋转字符图像前,还包括:
判断两道环形字符的设置方向;
若环形字符分别位于圆心的上、下两侧,则将位于圆心上方的环形字符的字符图像按照对应的角度大小从大到小依次排序,将位于圆心下方的环形字符的字符图像按照对应的角度大小从小到大依次排序,以确定每个字符的次序,从而根据该次序排列经旋转的字符图像以形成字符串;
若环形字符分别位于圆心的左、右两侧,则将两道环形字符的字符图像均按照对应的角度大小从大到小依次排序,以确定每个字符的次序,从而根据该次序排列经旋转的字符图像以形成字符串;
即在旋转字符图像并分割形成矫正图像后,将各个字符的矫正图像根据上述确定的次序从左至右依次排列以形成水平分布的字符串。
具体的,判断两道环形字符的设置方向时,还包括:
计算得出每个字符图像的角度后,计算角度的平均值;
若角度的平均值小于60°,则环形字符分别位于圆心的上下两侧;
若角度的平均值大于等于60°,则环形字符分别位于圆心的左右两侧。
具体的,旋转字符图像前判断字符的位置时,还包括:
当环形字符分别位于圆心的上、下两侧时,比较字符图像的中心的纵坐标与圆心的纵坐标的大小,若字符图像的中心的纵坐标小于圆心的纵坐标,则字符图像位于圆心的上方,若字符图像的中心的纵坐标大于圆心的纵坐标,则字符图像位于圆心的下方;
当环形字符分别位于圆心的左、右两侧时,比较字符图像的中心的横坐标与圆心的横坐标的大小,若字符图像的中心的横坐标小于圆心的横坐标,则字符图像位于圆心的左侧,若字符图像的中心的横坐标大于圆心的横坐标,则字符图像位于圆心的右侧。
本发明的具体实施方式如下:
获取部件刻有环形字符的表面的图像,对图像进行二值化分割,进而遍历图像的轮廓,并根据部件的半径确定圆心,并根据字符的长度和宽度提取环形字符以获取买个字符的字符图像并确定字符图像的中心;
建立原点O与图像的左顶角相重合的XOY坐标系,且X轴沿水平方向向右延伸,Y轴沿铅垂方向向下延伸,确定圆心在XOY坐标系中的坐标(cX,cY),确定字符图像的中心在XOY坐标系中的坐标(zX,zY),进而利用反三角函数计算得出字符图像的中心和圆心的连线与铅垂方向的角度ocrAngle;
计算角度ocrAngle的平均值,若角度ocrAngle的平均值小于60°则两道环形字符如图1所示分别位于圆心的上下两侧,若角度ocrAngle的平均值大于等于60°则两道环形字符如图2所示分别位于圆心的左右两侧;
当两道环形字符如图1所示分别位于圆心的上下两侧时,比较字符图像的中心的纵坐标与圆心的纵坐标的大小,若字符图像的中心的纵坐标小于圆心的纵坐标,则字符图像位于圆心的上方,将位于圆心上方的字符按对应的角度ocrAngle大小从大到小依次排序,若字符图像的中心的纵坐标大于圆心的纵坐标,则字符图像位于圆心的下方,将位于圆心下方的字符按照对应的角度ocrAngle大小从小到大依次排序,以确定每个字符的次序;
根据角度ocrAngle旋转字符图像,使得字符图像中的字符沿铅垂方向设置,进而计算该字符的左顶角的坐标,并进一步分割该字符形成新的矫正图像,将位于圆心上方和下方的字符的矫正图像均按照对应的次序从左到右依次排列,从而形成水平分布的字符串,进而识别该字符串,并与该批次的批号进行比较,若一致则符合标准,若不一致则该部件为混料需要作区分处理;
当两道环形字符如图2所示分别位于圆心的左右两侧时,比较字符图像的中心的横坐标与圆心的横坐标的大小,若字符图像的中心的横坐标小于圆心的坐标,则字符图像位于圆心的左侧,将位于圆心左侧的字符按照对应的角度ocrAngle大小从大到小依次排序,若字符图像的中心的横坐标大于圆心的坐标,则字符图像位于圆心的右侧,将位于圆心右侧的字符也按照对应的角度ocrAngle大小从大到小依次排序,以确定每个字符的次序;
根据角度ocrAngle旋转字符图像,使得字符图像中的字符沿铅垂方向设置,进而计算该字符的左顶角的坐标,并进一步分割该字符形成新的矫正图像,将位于圆心左侧和右侧的字符的矫正图像均按照对应的次序从左到右依次排序,从而形成水平分布的字符串,进而识别该字符串,并与该批次的批号进行比较,若一致则符合标准,若不一致则该部件为混料需要作区分处理。
本发明还提供了一种环形字符分割识别系统,包括:
图像获取模块,以获取环形字符的图像;
与图像获取模块通讯连接的图像处理模块,以对图像进行预处理,确定图像中环形字符的圆心,并根据环形字符中每个字符的长度和宽度提取环形字符以获取每个字符的字符图像,确定字符图像的中心;
与图像处理模块连接的角度计算模块,以计算字符图像的中心和圆心的连线与铅垂方向的角度;
与角度计算模块连接的字符处理模块,以根据计算得出的角度以圆心为旋转中心旋转字符图像,并将经旋转的字符图像依次排列以形成水平分布的字符串;以及
与字符处理模块连接的识别模块,以对字符串进行识别,从而获得识别结果。
本发明的具体实施方式如下:
利用图像获取模块获取部件刻有环形字符的表面的图像,并利用图像处理模块对图像进行二值化分割,进而遍历图像的轮廓,并根据部件的半径确定圆心,并根据字符的长度和宽度提取环形字符以获取买个字符的字符图像并确定字符图像的中心;
利用角度计算模块建立原点O与图像的左顶角相重合的XOY坐标系,且X轴沿水平方向向右延伸,Y轴沿铅垂方向向下延伸,确定圆心在XOY坐标系中的坐标(cX,cY),确定字符图像的中心在XOY坐标系中的坐标(zX,zY),进而利用反三角函数计算得出字符图像的中心和圆心的连线与铅垂方向的角度ocrAngle,并计算角度ocrAngle的平均值;
利用角度计算模块比较角度ocrAngle的平均值与角度阈值的大小,该角度阈值为60°,若角度ocrAngle的平均值小于60°则两道环形字符如图1所示分别位于圆心的上下两侧,若角度ocrAngle的平均值大于等于60°则两道环形字符如图2所示分别位于圆心的左右两侧;
当两道环形字符如图1所示分别位于圆心的上下两侧时,角度计算模块比较字符图像的中心的纵坐标与圆心的纵坐标的大小,若字符图像的中心的纵坐标小于圆心的纵坐标,则字符图像位于圆心的上方,将位于圆心上方的字符按照对应的角度ocrAngle大小从大到小依次排序,若字符图像的中心的纵坐标大于圆心的纵坐标,则字符图像位于圆心的下方,将位于圆心下方的字符按照对应的角度ocrAngle大小从小到大依次排序,以确定每个字符的次序;
字符处理模块根据角度ocrAngle以圆心为旋转中心旋转字符图像,使得字符图像中的字符沿铅垂方向设置,进而计算该字符的左顶角的坐标,并进一步分割该字符形成新的矫正图像,将位于圆心上方和下方的字符的矫正图像均按照对应的次序从左到右依次排列,从而形成水平分布的字符串,进而识别模块识别该字符串,并与该批次的批号进行比较,若一致则符合标准,若不一致则该部件为混料需要作区分处理;
当两道环形字符如图2所示分别位于圆心的左右两侧时,角度计算模块比较字符图像的中心的横坐标与圆心的横坐标的大小,若字符图像的中心的横坐标小于圆心的坐标,则字符图像位于圆心的左侧,将位于圆心左侧的字符按照对应的角度ocrAngle大小从大到小依次排序,若字符图像的中心的横坐标大于圆心的坐标,则字符图像位于圆心的右侧,将位于圆心右侧的字符也按照对应的角度ocrAngle大小从大到小依次排序,以确定每个字符的次序;
字符处理模块根据角度ocrAngle以圆心为旋转中心旋转字符图像,使得字符图像中的字符沿铅垂方向设置,进而计算该字符的左顶角的坐标,并进一步分割该字符形成新的矫正图像,将位于圆心左侧和右侧的字符的矫正图像均按照对应的次序从左到右依次排序,从而形成水平分布的字符串,进而识别模块识别该字符串,并与该批次的批号进行比较,若一致则符合标准,若不一致则该部件为混料需要作区分处理。
以上结合附图实施例对本发明进行了详细说明,本领域中普通技术人员可根据上述说明对本发明做出种种变化例。因而,实施例中的某些细节不应构成对本发明的限定,本发明将以所附权利要求书界定的范围作为本发明的保护范围。