一种字符边界确定方法及装置与流程

文档序号:12721131阅读:228来源:国知局
一种字符边界确定方法及装置与流程

本发明实施例涉及字符识别技术,尤其涉及一种字符边界确定方法及装置。



背景技术:

字符识别技术在日常生活中应用广泛,例如,纸币冠字号识别、车牌识别等。以纸币为例,纸币在流通过程中,可能会染上不同程度的污迹,当污迹处于冠字号区域时,影响字符边界的准确定位,可能会导致识别错误甚至无法识别,为纸币识别或鉴伪带来一定的困难。现有的纸币冠字号识别主要针对七成新以上的纸币,为了有效地对纸币冠字号进行识别,在冠字号识别过程中,利用计算机视觉技术和图像处理技术对污染的冠字号区域进行处理,例如,通过二值操作以及中值滤波去噪等简单的方法去除污迹,得到可以识别的冠字号,然后定位字符边界,进行分割和识别。

但是,字符识别过程中需要二值化以及去除污迹,使得整个识别过程耗费时间较长,且上述简单的方法并不能有效去除污迹,污迹还是会影响字符边界的准确定位,进而影响字符分割和识别。



技术实现要素:

本发明实施例提供一种字符边界确定方法及装置,可以解决污迹对字符边界定位的影响,能够准确定位字符边界,且时间复杂度较低。

第一方面,本发明实施例提供了一种字符边界确定方法,包括:

针对字符灰度图,计算邻行灰度差值和邻列灰度差值;

根据所述邻行灰度差值及预设字符高度确定字符的上边界和下边界;

根据所述邻列灰度差值及预设字符宽度确定字符的左边界和右边界。

第二方面,本发明实施例还提供了一种字符边界确定装置,包括:

灰度差值计算模块,用于针对字符灰度图,计算邻行灰度差值和邻列灰度差值;

上下边界确定模块,用于根据所述邻行灰度差值及预设字符高度确定字符的上边界和下边界;

左右边界确定模块,用于根据所述邻列灰度差值及预设字符宽度确定字符的左边界和右边界。

本发明实施例的字符边界确定方法及装置,通过邻行灰度差值、邻列灰度差值及预设字符大小确定字符的四个边界,能够准确定位字符边界,解决小块污迹对边界定位的影响,且方法简单,无需采用额外手段去除污迹,时间复杂度低。

附图说明

图1是本发明实施例一提供的字符边界确定方法的流程图;

图2是本发明实施例一提供的字符灰度图的示意图;

图3是本发明实施例四提供的字符边界确定装置的结构框图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

本发明实施例中的字符图片是指需要识别的字符图片,例如,纸币冠字号图片、车牌图片等。上述字符图片如果存在小块污迹,且该污迹不会导致字符因被污迹遮挡而无法识别,则可以应用本发明实施例进行字符边界确定。上述字符图片如果存在大量污迹,完全遮挡字符,无法进行字符识别,也就无需进行字符边界确定,这种情况不在本发明实施例的讨论范围。

实施例一

图1是本发明实施例一提供的字符边界确定方法的流程图,本实施例可适用于字符图片上有小块污迹且该污迹不影响字符识别的情况,该方法可以由字符边界确定装置来执行,字符边界确定装置可以是具有计算功能和图像处理功能的电子设备。如图1所示,该字符边界确定方法包括如下的步骤S110至步骤S130。

步骤S110,针对字符灰度图,计算邻行灰度差值和邻列灰度差值。

本步骤中,字符灰度图可以通过将彩色图像转换为灰度图得到,例如,纸币的冠字号灰度图、车牌灰度图等。字符灰度图如图2所示,为纸币冠字号的一部分。其中,冠字号灰度图指的是纸币上的冠字号区域的灰度图像,而不是整张纸币的灰度图;车牌灰度图指的是车牌区域的灰度图。

灰度图的灰度值越小,图像颜色越深,黑色对应的灰度值为0。一般在字符灰度图中,字符为黑色,其像素对应的灰度值为0,字符的背景为灰色,对应的灰度值较大,小块污迹在灰度图中的颜色一般比背景色深。

每一列的宽度和每一行的高度均为一个像素长度。计算邻行灰度差值和邻列灰度差值,可以由多种方法实现。以行为例,可以直接计算某一行各像素点的灰度值与其邻行各像素点的灰度值的差,再将各像素点的灰度差相加;也可以先计算每行的灰度值之和(例如,通过对灰度图做行投影的方式得到每行的灰度值之和,也可以直接对同一行各像素点的灰度值相加得到该行的灰度值之和),然后计算某一行与其邻行的灰度值之和的差值。

步骤S120,根据邻行灰度差值及预设字符高度确定字符的上边界和下边界。

步骤S130,根据邻列灰度差值及预设字符宽度确定字符的左边界和右边界。

步骤S120和步骤S130的执行顺序不分先后。在步骤S120和步骤S130中,单个字符的大小(包括字符高度和宽度,即单个字符所占的行数和列数)与RGB图像采集时的图像分辨率有关,图像分辨率不同,单个字符的大小也不同。由于冠字号或者车牌的格式大小均是统一的,因此预设字符高度和预设字符宽度均可以是经验值,以冠字号为例,对于纵向分辨率为150像素,横向分辨率为200像素的纸币灰度图,单个冠字号字符的宽度为20像素(占20列),高度为24像素(占24行),那么对于同样分辨率的纸币灰度图,就可以使用上述数据作为预设字符高度和预设字符宽度。另外,预设字符高度和预设字符宽度还可以是根据当前字符灰度图的分辨率及字符格式大小计算得到,例如,根据车牌灰度图的分辨率,可以计算得出车牌号中单个字符的大小。

本实施例中,在字符边界处,会出现灰度值的跳变,例如,背景所在行之间的灰度差值很小,甚至为0;字符上边界处灰度值会减小,计算上边界下一行与上边界所在行的灰度差值,则会得到一个负值;字符所在的各行均会存在黑色的像素,字符所在的各行像素的灰度差值可以是正值或负值,但其绝对值会小于边界跳变的灰度差的绝对值;字符下边界处灰度值会增大,计算下边界下一行与下边界所在行的灰度差值,会得到一个正值。因此,可以确定最小差值对应的行(即差值计算中的减数对应的行)是字符的上边界,最大差值对应的行(即差值计算中的减数对应的行)是字符的下边界。当然,依据上述原理,也可以计算上一行减去下一行的灰度差值,此时,最小差值对应的行(即差值计算中的被减数对应的行)是字符的下边界,最大差值对应的行(即差值计算中的被减数对应的行)是字符的上边界。确定字符左右边界的原理与确定上下边界原理类似,不再重复说明,但需注意的是,由于每个字符均存在左右边界,因此需要在预设范围内分别确定每个字符的左右边界。

对于不影响字符识别的小块污迹,与纯背景的行或列相比,污迹会减小所在行或列的灰度值之和,考虑到污迹可能对利用灰度差值确定字符边界产生影响,因此,可以结合预设字符宽度和预设字符高度来判断根据灰度差值确定的边界是否合理,并进行调整,从而进行准确的字符边界定位。

本实施例的字符边界确定方法,通过邻行灰度差值、邻列灰度差值及预设字符大小确定字符的四个边界,能够准确定位字符边界,解决小块污迹对边界定位的影响,且方法简单,无需采用额外手段去除污迹,时间复杂度低。

实施例二

在上述实施例一的基础上,本实施例提供了计算邻行灰度差值、根据邻行灰度差值及预设字符高度确定字符的上边界和下边界的优选实施方式。

本实施例中,可以通过以下几种方式计算邻行灰度差值:

(1)逐行计算下一行与当前行的灰度差值。其中,可以从上往下逐行计算灰度差值。下一行与当前行的灰度差值是指下一行灰度值减去当前行灰度值。

(2)逐行计算当前行与下一行的灰度差值。其中,可以从上往下逐行计算灰度差值。当前行与下一行的灰度差值是指当前行灰度值减去下一行灰度值。

(3)计算(Ri+1-Ri)+(Ri+2-Ri),得到第一计算结果,其中,Ri+1-Ri表示第i+1行与第i行的灰度差值,Ri+2-Ri表示第i+2行与第i行的灰度差值。本方式中涉及三行的灰度差值,这样能够保证确定的边界更为准确。

(4)计算(Ri-Ri+1)+(Ri-Ri+2),得到第二计算结果,其中,Ri-Ri+1表示第i行与第i+1行的灰度差值,Ri-Ri+2表示第i行与第i+2行的灰度差值。本方式中涉及三行的灰度差值,这样能够保证确定的边界更为准确。

优选的,根据邻行灰度差值及预设字符高度确定字符的上下边界,可以通过以下步骤实现:根据邻行灰度差值,确定最值所对应的当前行作为字符的上边界或下边界;检测确定的上边界与下边界相隔的距离是否等于预设字符高度;如果是,则边界定位准确;如果否,则根据邻行灰度差值和预设字符高度调整字符的上边界和/或下边界,直到确定的上边界与下边界相隔的距离等于预设字符高度。其中,采用不同方式计算得到邻行灰度差值,依据该灰度差值,最值与边界的对应关系也不同,可以是最小值对应上边界,也可以是最大值对应上边界,后续会进行说明。

具体的,初始确定的上边界与下边界相隔的距离不等于预设字符高度,可能是上边界和/或下边界确定不准确。可以结合预设字符高度、灰度差值以及已经确定的边界在灰度图中的位置调整边界,例如,字符处于图片的中间位置,如果确定的边界靠近图片边缘,则边界定位错误。由于受到污迹的影响,可能会存在多个相等的最小值(或多个相等的最大值),此时可以根据预设规则选取其中一个用于确定边界,该预设规则可以是任选一个,也可以是选择最上面的最小值(或选择最下面的最大值),还可以是选取某一固定行(例如,选取多个相等的最小值中的第2行)。然后结合预设字符高度对确定的上下边界进行调整。具体的调整过程,需要根据实际情况进行,例如,最小值对应上边界,存在多个相等的最小值,根据预设规则确定其中一个值对应的行作为上边界,且唯一确定了下边界,上下边界的距离为10,小于预设字符高度24,显然,上边界可能定位错误,需要更换其他最小值对应的行作为上边界,更换后,再次利用预设字符高度进行检测,直到确定的上下边界符合距离等于预设字符高度的条件;或者可以直接找到与下边界相距24行的那个灰度差值,如果该值也是最小值,则将对应的行确定为新的上边界。

另外,如果只存在唯一的最小值或最大值,但是上下边界距离不等于预设字符高度,此时,可以先结合已经确定的边界在灰度图中的位置,确定哪个边界定位准确,例如,下边界准确,则结合预设字符高度确定新的上边界,如果该上边界对应的灰度差值为倒数第二小的灰度差值,则可以确定边界定位准确。

对于上述四种计算方式,分别存在各自的确定最值与边界对应关系的具体方法,下面分别进行说明。

在方式(1)逐行计算下一行与当前行的灰度差值的情况下,比较得到的所有灰度差值,确定最小差值所对应的当前行作为字符的上边界,确定最大差值所对应的当前行作为字符的下边界。

在方式(2)逐行计算当前行与下一行的灰度差值的情况下,比较得到的所有灰度差值,确定最大差值所对应的当前行作为字符的上边界,确定最小差值所对应的当前行作为字符的下边界。

在方式(3)计算得到第一计算结果的情况下,确定第一计算结果中最小的值对应的第i行作为字符的上边界,确定第一计算结果中最大的值对应的第i行作为字符的下边界。

在方式(4)计算得到第二计算结果的情况下,确定第一计算结果中最大的值对应的第i行作为字符的上边界,确定第一计算结果中最小的值对应的第i行作为字符的下边界。

本实施例提供多种具体方式确定字符的上下边界,方式灵活,在实际应用中,可以根据实际情况选择某种方式使用。

实施例三

在上述实施例一和实施例二的基础上,本实施例提供了计算邻列灰度差值、根据邻列灰度差值及预设字符宽度确定字符的左边界和右边界的优选实施方式。

本实施例中,可以通过以下几种方式计算邻列灰度差值:

(1)逐列计算下一列与当前列的灰度差值。其中,可以从前往后逐列计算灰度差值。下一列与当前列的灰度差值是指下一列灰度值减去当前列灰度值。

(2)逐列计算当前列与下一列的灰度差值。其中,可以从前往后逐列计算灰度差值。当前列与下一列的灰度差值是指当前列灰度值减去下一列灰度值。

(3)计算(Cj+1-Cj)+(Cj+2-Cj),得到第三计算结果,其中,Cj+1-Cj表示第j+1列与第j列的灰度差值,Cj+2-Cj表示当前第j+2列与第j列的灰度差值。本方式中涉及三列的灰度差值,这样能够保证确定的边界更为准确。

(4)计算(Cj-Cj+1)+(Cj-Cj+2),得到第四计算结果,其中,Cj-Cj+1表示第j列与第j+1列的灰度差值,Cj-Cj+2表示当前第j列与第j+2列的灰度差值。本方式中涉及三列的灰度差值,这样能够保证确定的边界更为准确。

优选的,根据邻列灰度差值及预设字符宽度确定字符的左边界和右边界,可以通过以下步骤实现:

步骤A1,比较第一预设列数范围内的邻列灰度差值,确定最值所对应的当前列作为当前字符的左边界或右边界;其中,采用不同方式计算得到邻列灰度差值,依据该灰度差值,最值与边界的对应关系也不同,可以是最小值对应左边界,也可以是最大值对应左边界,后续会进行说明。

步骤A2,检测确定的左边界与右边界相隔的距离是否等于预设字符宽度。

步骤A3,如果是,则边界定位准确。

步骤A4,如果否,则根据邻列灰度差值和预设字符宽度调整该字符的左边界和/或右边界,直到确定的左边界与右边界相隔的距离等于预设字符宽度。

步骤A5,针对字符灰度图中的其他字符,与已经确定边界的相邻字符相距第二预设列数范围后,比较第三预设列数范围内的差值,确定最值所对应的当前列作为对应字符的左边界或右边界,执行步骤A2至步骤A4检测边界是否定位准确,直到确定各个字符的左边界和右边界。

本实施例中可以先确定任意字符的左右边界,在检测其边界定位准确后,以该字符为基准,从相邻的字符开始,逐个确定其他字符的边界。例如,可以根据用户输入的字符污迹信息确定有污迹的字符,然后在没有污迹的字符中任选一个,先确定所选字符的边界;也可以从第一个字符开始确定边界。

第一预设列数范围、第二预设列数范围和第三预设列数范围的取值与最先确定边界的字符位置有关。例如,先确定第一个字符,则考虑到灰度图左侧存在空白,第一预设列数范围可以为60列,该范围内一般仅包括第一个字符。第二预设列数范围还与设定的基准有关,例如,以左侧相邻字符的左边界为基准,该第二预设列数范围可以为25列;以左侧相邻字符的右边界为准,该第二预设列数范围可以为5列。第三预设列数范围可以是大于单个字符宽度的数据。

根据预设字符宽度调整边界与根据预设字符高度调整边界类似,需要考虑单个字符所占的列数,此处不再赘述。

对于上述四种计算方式,分别存在各自的确定最值与边界对应关系的具体方法,下面分别进行说明。

在方式(1)逐列计算下一列与当前列的灰度差值的情况下,确定第一预设列数范围内的最小差值所对应的当前列作为当前字符的左边界,确定第一预设列数范围内的最大差值所对应的当前列作为当前字符的右边界;

在方式(2)逐列计算当前列与下一列的灰度差值的情况下,确定第一预设列数范围内的最大差值所对应的当前列作为当前字符的左边界,确定第一预设列数范围内的最小差值所对应的当前列作为当前字符的右边界;

在方式(3)计算得到第三计算结果的情况下,确定第一预设列数范围内的最小值所对应的第j列作为字符的左边界,确定第一预设列数范围内的最大值所对应的第j列作为字符的右边界;

在方式(4)计算得到第四计算结果的情况下,确定第一预设列数范围内的最大值所对应的第j列作为字符的左边界,确定第一预设列数范围内的最小值所对应的第j列作为字符的右边界。

本实施例中,可以先从未受污迹影响的字符开始,确定字符的左右边界,减少了污迹对边界定位的影响,增加了边界定位的准确性。本实施例提供多种具体方式确定字符的左右边界,方式灵活,在实际应用中,可以根据实际情况选择某种方式使用。

需要说明的是,上述实施例二和实施例三中,上下边界与左右边界的定位方法可以混合使用,例如,利用实施例二的计算方式(1)及其对应的方法确定上下边界,利用实施例三的计算方式(2)及其对应的方法确定左右边界。

实施例四

图3是本发明实施例四提供的字符边界确定装置的结构框图,本实施例可适用于字符图片上有小块污迹且该污迹不影响字符识别的情况,如图3所示,该装置包括:灰度差值计算模块31、上下边界确定模块32和左右边界确定模块33。

其中,灰度差值计算模块31,用于针对字符灰度图,计算邻行灰度差值和邻列灰度差值;上下边界确定模块32,用于根据邻行灰度差值及预设字符高度确定字符的上边界和下边界;左右边界确定模块33,用于根据邻列灰度差值及预设字符宽度确定字符的左边界和右边界。

本实施例的字符边界确定装置,通过邻行灰度差值、邻列灰度差值及预设字符大小确定字符的四个边界,能够准确定位字符边界,解决小块污迹对边界定位的影响,且方法简单,无需采用额外手段去除污迹,时间复杂度低。

优选的,上下边界确定模块32包括:上下边界确定单元和高度检测单元。其中,上下边界确定单元,用于根据邻行灰度差值,确定最值所对应的当前行作为字符的上边界或下边界;高度检测单元,用于检测确定的上边界与下边界相隔的距离是否等于预设字符高度;如果是,则边界定位准确;如果否,则根据邻行灰度差值和预设字符高度调整字符的上边界和/或下边界,直到确定的上边界与下边界相隔的距离等于预设字符高度。

灰度差值计算模块31具体用于:逐行计算下一行与当前行的灰度差值;或者,逐行计算当前行与下一行的灰度差值;或者,计算(Ri+1-Ri)+(Ri+2-Ri),得到第一计算结果,其中,Ri+1-Ri表示第i+1行与第i行的灰度差值,Ri+2-Ri表示第i+2行与第i行的灰度差值;或者,计算(Ri-Ri+1)+(Ri-Ri+2),得到第二计算结果,其中,Ri-Ri+1表示第i行与第i+1行的灰度差值,Ri-Ri+2表示第i行与第i+2行的灰度差值。

上下边界确定单元具体用于:

在逐行计算下一行与当前行的灰度差值的情况下,比较得到的所有灰度差值,确定最小差值所对应的当前行作为字符的上边界,确定最大差值所对应的当前行作为字符的下边界;

在逐行计算当前行与下一行的灰度差值的情况下,比较得到的所有灰度差值,确定最大差值所对应的当前行作为字符的上边界,确定最小差值所对应的当前行作为字符的下边界;

在计算得到第一计算结果的情况下,确定第一计算结果中最小的值对应的第i行作为字符的上边界,确定第一计算结果中最大的值对应的第i行作为字符的下边界;

在计算得到第二计算结果的情况下,确定第一计算结果中最大的值对应的第i行作为字符的上边界,确定第一计算结果中最小的值对应的第i行作为字符的下边界。

优选的,左右边界确定模块33包括:左右边界确定单元、宽度检测单元和边界调整单元。其中,左右边界确定单元,用于比较第一预设列数范围内的邻列灰度差值,确定最值所对应的当前列作为当前字符的左边界或右边界;宽度检测单元,用于检测确定的左边界与右边界相隔的距离是否等于预设字符宽度;如果是,则边界定位准确;如果否,则根据邻列灰度差值和预设字符宽度调整该字符的左边界和/或右边界,直到确定的左边界与右边界相隔的距离等于预设字符宽度;边界调整单元,用于针对字符灰度图中的其他字符,与已经确定边界的相邻字符相距第二预设列数范围后,比较第三预设列数范围内的差值,确定最值所对应的当前列作为对应字符的左边界或右边界,利用宽度检测单元检测边界是否定位准确,直到确定各个字符的左边界和右边界。

灰度差值计算模块31具体用于:逐列计算下一列与当前列的灰度差值;或者,逐行计算当前列与下一列的灰度差值;或者,计算(Cj+1-Cj)+(Cj+2-Cj),得到第三计算结果,其中,Cj+1-Cj表示第j+1列与第j列的灰度差值,Cj+2-Cj表示当前第j+2列与第j列的灰度差值;或者,计算(Cj-Cj+1)+(Cj-Cj+2),得到第四计算结果,其中,Cj-Cj+1表示第j列与第j+1列的灰度差值,Cj-Cj+2表示当前第j列与第j+2列的灰度差值。

左右边界确定单元具体用于:

在逐列计算下一列与当前列的灰度差值的情况下,确定第一预设列数范围内的最小差值所对应的当前列作为当前字符的左边界,确定第一预设列数范围内的最大差值所对应的当前列作为当前字符的右边界;

在逐列计算当前列与下一列的灰度差值的情况下,确定第一预设列数范围内的最大差值所对应的当前列作为当前字符的左边界,确定第一预设列数范围内的最小差值所对应的当前列作为当前字符的右边界;

在计算得到第三计算结果的情况下,确定第一预设列数范围内的最小值所对应的第j列作为字符的左边界,确定第一预设列数范围内的最大值所对应的第j列作为字符的右边界;

在计算得到第四计算结果的情况下,确定第一预设列数范围内的最大值所对应的第j列作为字符的左边界,确定第一预设列数范围内的最小值所对应的第j列作为字符的右边界。

上述字符边界确定装置可执行本发明任意实施例所提供的字符边界确定方法,具备执行该方法相应的功能模块和有益效果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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