本发明涉及计算机技术领域,尤其涉及一种提取字符的方法、系统、电子设备及存储介质。
背景技术:
进行字符识别时,往往需要事先提取出待识别的字符。又有,传统的字符提取算法需要先检测字符的边缘以及内在连通域,而后再对检测出的字符边缘进行提取,由于边缘检测以及内在连通域计算的时间复杂度较高,从而会大幅增加提取字符以及识别被提取字符的时间成本。
此外,传统的字符提取算法仅能提取单个字符,而无法将关联的字符作为整体取出,从而进行字符识别时,也无法将关联字符作为整体识别出来,例如,待识别字符为“135”,识别结果为“1、3、5”,而不是“13、5”。
技术实现要素:
本发明的实施例要解决的技术问题是为了克服现有技术中字符提取时间成本高的缺陷,提供一种提取字符的方法、系统、电子设备及存储介质。
本发明的实施例是通过下述技术方案来解决上述技术问题:
一种提取字符的方法,其特点在于,所述方法包括:
初始化字符图像,获得包括字符的二值图像;
根据所述二值图像中字符的大小设置扫描框;
利用所述扫描框沿着扫描路径扫描所述二值图像;
判断所述扫描框内是否存在字符;
若是,则提取所述扫描框内的字符。
较佳地,所述扫描框的高度在所述二值图像中字符的平均高度和最大高度之间取值;
所述扫描框的宽度在所述二值图像中字符的平均宽度和最大宽度之间取值。
较佳地,所述判断所述扫描框内是否存在字符的步骤包括:
判断所述扫描框是否满足提取条件,所述提取条件包括:
所述二值图像在所述扫描框内的像素值之和大于0,并且在所述扫描框边界上的像素值之和等于0;
若是,则所述扫描框内存在字符。
较佳地,所述判断所述扫描框是否满足提取条件的步骤包括:
当所述二值图像在所述扫描框内的像素值之和大于0,并且在所述扫描框边界上的像素值之和大于0时,向外延伸所述扫描框的边界,直至所述二值图像在延伸后的边界上的像素值之和等于0,则调整后扫描框满足提取条件;
所述提取所述扫描框内的字符的步骤包括:
提取调整后扫描框内的字符。
较佳地,所述提取所述扫描框内的字符的步骤包括:
向内延伸所述扫描框的边界,直至所述二值图像在调整后的边界上的像素值之和大于0;
将调整后的边界向外延伸一个像素;
提取调整后扫描框内的字符。
较佳地,在所述提取所述扫描框内的字符的步骤之后,所述方法还包括:
判断所述扫描框向下一位置延伸预设长度的范围内是否有像素点;
若是,则所述扫描框移至下一位置继续扫描所述二值图像;
将提取到的当前字符和上一字符标记为关联字符;
若否,则所述扫描框移至下一位置继续扫描所述二值图像。
较佳地,在所述提取所述扫描框内的字符的步骤之后,所述方法还包括:
识别提取到的字符。
较佳地,所述识别提取得到的字符的步骤包括:
获取模板字符;
初始化提取得到的字符,获得与所述模板字符大小相同的待识别字符;
计算所述待识别字符和所述模板字符的相似度;
判断所述相似度是否大于预设阈值;
若是,则识别所述待识别字符为所述模板字符。
较佳地,所述计算所述待识别字符和所述模板字符的相似度的步骤包括:
根据分割模板将所述模板字符分割为若干模板子字符;
根据所述分割模板将所述待识别字符分割为若干待识别子字符;
分别计算对应所述分割模板相同位置的模板子字符和待识别子字符的子相似度;
所述判断所述相似度是否大于预设阈值的步骤包括:
判断每个子相似度是否均大于对应的预设子阈值。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特点在于,所述处理器执行所述计算机程序时实现上述任一种提取字符的方法。
一种计算机可读存储介质,其上存储有计算机程序,其特点在于,所述计算机程序被处理器执行时实现上述任一种提取字符的方法的步骤。
一种提取字符的系统,其特点在于,所述系统包括:
图像初始化模块,用于初始化字符图像,获得包括字符的二值图像;
扫描框设置模块,用于根据所述二值图像中字符的大小设置扫描框;
扫描模块,用于利用所述扫描框沿着扫描路径扫描所述二值图像;
提取条件判断模块,用于判断所述扫描框内是否存在字符;
若是,则调用提取模块,所述提取模块用于提取所述扫描框内的字符。
本发明的实施例的积极进步效果在于:本发明的实施例基于扫描框来扫描二值图像,当判断扫描框中存在字符时,即可提取字符,无需检验字符边缘,也无需计算字符内在连通域,极大地简化了字符的提取,降低了提取字符的成本。
附图说明
图1为根据本发明实施例1的提取字符的方法的流程图。
图2为根据本发明实施例1的提取字符的方法中扫描框的示意图。
图3为根据本发明实施例1的提取字符的方法中扫描框的具体示意图。
图4为根据本发明实施例2的电子设备的硬件结构示意图。
图5为根据本发明实施例4的提取字符的方法调整扫描框的示意图。
图6为根据本发明实施例4的提取字符的方法中步骤s105的流程图。
图7为根据本发明实施例4的提取字符的方法调整扫描框的另一示意图。
图8为根据本发明实施例7的提取字符的方法判断关联字符的示意图。
图9为根据本发明实施例7的提取字符的方法判断关联字符的另一示意图。
图10为根据本发明实施例7的提取字符的方法判断关联字符的另一示意图。
图11为根据本发明实施例10的提取字符的方法的部分流程图。
图12为根据本发明实施例10的提取字符的方法中步骤s203的流程图。
图13为根据本发明实施例13的提取字符的系统的模块示意图。
图14为根据本发明实施例14的提取字符的系统的模块示意图。
图15为根据本发明实施例15的提取字符的系统的模块示意图。
图16为根据本发明实施例16的提取字符的系统中识别模块的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种提取字符的方法,图1示出了本实施例的流程图。参照图1,本实施例的方法包括:
s101、初始化字符图像,获得包括字符的二值图像。
在步骤s101中,若字符图像是彩色图像,则初始化字符图像的步骤包括对字符图像进行灰度化和二值化两项处理;若字符图像是灰度图像,则初始化字符图像的步骤可以直接对字符图像进行二值化处理。
具体地,在灰度化处理中,可以采用平均值法计算彩色字符图像中每一像素点的灰度,即,gray=(b+g+r)/3,由此,将彩色字符图像转换为灰度图像后,字符图像由多通道图像转换为单通道图像,像素点由3字节转换为单字节,大幅度降低了图像原始数据量,便于对图像进行计算,进而大幅度降低了字符提取识别的速度。
在二值化处理中,对于灰度图像,灰度值高于阈值的像素点,令其像素值为255,灰度值低于该阈值的像素点,令其像素值为0,如此,使得原始字符图像进一步得到简化,同时,还初步去除了原始字符图像中的噪点。其中,阈值可以取值为但不限于灰度图像中的灰度均值。
s102、根据二值图像中字符的大小设置扫描框。
在本实施例中,基于扫描框扫描二值图像,进而实现字符提取,从而扫描框大小应当与二值图像中字符大小大致相同。具体地,统计二值图像中字符的大小,可以确定扫描框的高度和宽度为二值图像中较大字符的高度和宽度。换言之,扫描框的高度可以在二值图像中字符的平均高度和最大高度之间取值,扫描框的宽度可以在二值图像中字符的平均宽度和最大宽度之间取值。
s103、利用扫描框沿着扫描路径扫描二值图像。
具体地,在本实施例中,可以扫描框的左上角为起点按照预设的扫描路径(例如,自左向右)遍历二值图像中的所有像素点,实现扫描框对二值图像的扫描。应当理解,也可以根据实际情况缩小扫描框在二值图像上的扫描范围,如此,扫描框的左上角只需遍历调整后扫描范围内的所有像素点,以简化对二值图像的扫描。
s104、判断扫描框内是否存在字符;
若是,则转至步骤s105;若否,则转至步骤s106;
s105、提取扫描框内的字符,并转至步骤s106;
s106、扫描框移至下一位置继续扫描二值图像。
在本实施例中,二值图像包括字符,字符四周又通常留有空白。对于扫描框来说,其内部像素值之和大于0,则可以推断扫描框中存在字符,在此基础上,若其边界像素值和等于0,则可以推断当前扫描框的边界可能是字符的边界。
具体地,在本实施例中,步骤s104具体可以包括判断扫描框是否满足提取条件的步骤,其中,提取条件包括:二值图像在扫描框内的像素值之和大于0,并且在扫描框边界上的像素值之和等于0。参见图2,扫描框包括边界k,并且边界k和扫描框的内部框线p相距一个像素,当内部框线p包围范围内的像素值之和大于0,并且边界k上的像素值之和等于0时,此时可以判断扫描框满足提取条件,提取扫描框内的字符,继而扫描框移至下一位置继续扫描二值图像。否则,扫描框直接移至下一位置继续扫描二值图像。
在本实施例中,为了简化提取条件的判断,可以仅计算内部框线p上的像素值之和,当内部框线p上的像素值之和大于0,并且边界k上的像素值之和等于0时,此时可以判断扫描框满足提取条件。
应当理解,为了进一步简化提取条件的判断,参见图3,可以首先计算内部框线p的边p1上的像素值之和,当边p1上的像素值之和大于0时,可以推断当前扫描框中存在字符,继而计算边界k的边k1上的像素值之和,当边k1上的像素值之和等于0时,可以推断边k1可能是字符的上边界,继而计算边界k的边k3上的像素值之和,当边k3上的像素值之和等于0时,可以推断边k3亦可能是字符的下边界,同样地,可以基于分别对边p4、k4、k2上的像素值之和的计算,来推断边k4和k2是否可能是字符的左右边界。
应当理解,为了简化提取条件的判断,内部框线p以及边界k上各边的判断组合并不限于上述举例,例如,还可以通过边p1和k1、边p2和k2、边p3和k3、边p4和k4的两两组合来分别判断当前扫描框是否满足提取条件。
在本实施例中,基于固定大小的扫描框来扫描二值图像,当扫描框满足提取条件时,则扫描框中存在字符,进而可以实现字符的提取,而无需检验字符边缘,也无需计算字符内在连通域,极大地简化了字符的提取,降低了提取字符的成本。
实施例2
本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例1提供的提取字符的方法。
图4示出了本实施例的硬件结构示意图,如图4所示,电子设备9具体包括:
至少一个处理器91、至少一个存储器92以及用于连接不同系统组件(包括处理器91和存储器92)的总线93,其中:
总线93包括数据总线、地址总线和控制总线。
存储器92包括易失性存储器,例如随机存取存储器(ram)921和/或高速缓存存储器922,还可以进一步包括只读存储器(rom)923。
存储器92还包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器91通过运行存储在存储器92中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的提取字符的方法。
电子设备9进一步可以与一个或多个外部设备94(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口95进行。并且,电子设备9还可以通过网络适配器96与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器96通过总线93与电子设备9的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备9使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例3
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1提供的提取字符的方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1中的提取字符的方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
实施例4
在实施例1的基础上,本实施例提供一种提取字符的方法,较之实施例1,本实施例中扫描框的大小可以调整。
具体地,对于扫描框来说,其内部像素值之和大于0,则可以推断扫描框中存在字符,在此基础上,若其边界像素值之和大于0,则可以推断当前扫描框的边界并非字符的边界,当前扫描框的大小可能小于字符的大小;若其边界像素值和等于0,则可以推断当前扫描框的边界可能是字符的边界,因为当前扫描框的大小可能大于字符的大小。
在当前扫描框的大小可能小于字符的大小时,步骤s104可以包括:
向外延伸扫描框的边界,直至二值图像在延伸后的边界上的像素值之和等于0。
在此基础上,步骤s105包括:
提取调整后扫描框内的字符。
参见图5,边界为k的扫描框是根据步骤s102设置的原始扫描框,此时,扫描框内部的像素值之和大于0,并且边界k上的像素值之和亦大于0,将边界k向外延伸,直至延伸后形成的边界k’上的像素值之和等于0,此时,边界为k’的扫描框满足提取条件,在步骤s1051中,提取边界为k’的扫描框内的字符。
参见图6,在当前扫描框的大小可能大于字符的大小时,步骤s105可以包括:
s1051、向内延伸扫描框的边界,直至二值图像在调整后的边界上的像素值之和大于0;
s1052、将调整后的边界向外延伸一个像素;
s1053、提取调整后扫描框内的字符。
参见图7,边界为k的扫描框是根据步骤s102设置的原始扫描框,此时,扫描框内部的像素值之和大于0,并且边界k、内部框线p上的像素值之和均等于0,将边界k向内延伸,直至延伸后形成的边界(图中未示出)上的像素值之和大于0,此时,扫描框不满足提取条件,再将边界向外延伸一个像素后得到边界k”,边界为k”的扫描框满足提取条件,在步骤s1051中,提取边界为k”的扫描框内的字符。
在本实施例中,扫描二值图像的扫描框的大小并不固定,当扫描框中存在字符,而扫描框的大小并非最合适时,可以将原始扫描框向内或者向外延伸,以获得最合适的扫描框,在提取字符之后,则可以继续以原始扫描框来扫描二值图像,较之固定大小的扫描框,能够更加灵活、更加适应地实现字符的提取。
实施例5
本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例4提供的提取字符的方法。
实施例6
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例4提供的提取字符的方法的步骤。
实施例7
本实施例提供一种提取字符的方法,较之上述实施例,本实施例的方法在步骤s105中之后还包括:
判断扫描框向下一位置延伸预设长度的范围内是否有像素点。
参照图8,若提取扫描框中字符1之后,扫描框向下一位置延伸预设长度的范围s内有像素点,则存在与字符1关联的字符3,转至步骤s106继续扫描二值图像,继而提取字符3之后,将字符3和字符1标记为关联字符。
参照图9,若提取扫描框中字符3之后,扫描框向下一位置延伸预设长度的范围s内没有像素点,则不存在与字符3关联的字符,转至步骤s106继续扫描二值图像,而不必将继而提取的字符5与字符3关联。
在本实施例中,可以对二值图像中字符间距的大小进行统计,来确定预设长度。并且,范围s内有无像素点的判断,既可以通过计算范围s内的像素点之和进行判断,也可以通过计算如图10所示范围s内线段s1、s2、s3……(可以根据具体应用进行自定义设置)上的像素点之和进行判断,从而无论字符之间的形状差异,在提取字符时将关联字符进行标记,进而在后续对提取字符进行识别时,关联字符可以被识别为一个整体。
实施例8
本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例7提供的提取字符的方法。
实施例9
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例7提供的提取字符的方法的步骤。
实施例10
本实施例提供一种提取字符的方法,较之上述实施例,本实施例的方法还包括识别提取到的字符的步骤。参照图11,本实施例的方法还包括:
s201、获取模板字符;
s202、初始化提取得到的字符,获得与模板字符大小相同的待识别字符;
s203、计算待识别字符和模板字符的相似度;
s204、判断相似度是否大于预设阈值;
若是,则转至步骤s205;若否,则转至步骤s201获取另一模板字符;
s205、识别待识别字符为模板字符。
在本实施例中,可以通过下式来计算相似度:
其中,n代表图像中像素点个数,pix1、pix2分别代表模板图像和待识别字符图像中的像素点i的像素值,m1、m2分别代表模板图像和待识别字符图像中的像素点像素值期望。此外,预设阈值可以根据具体应用进行自定义设置。
应当理解,为了进一步提高字符识别精度,可以根据相同的分割规则对模板字符和待识别字符进行分割,进而基于分割得到的各部分来判断待识别字符是否为当前模板字符。具体地,参见图12,步骤s203包括:
s2031、根据分割模板将模板字符分割为若干模板子字符;
s2032、根据分割模板将待识别字符分割为若干待识别子字符;
s2033、分别计算对应分割模板相同位置的模板子字符和待识别子字符的子相似度。
进而在步骤s204则需对每个子相似度是否均大于对应的预设子阈值进行判断。
在本实施例中,分割模板以及预设子阈值可以根据具体应用进行自定义设置,例如,分割模板可以是二分模板,预设子阈值可以取值为0.5,预设阈值可以取值为0.8,若计算得到的子相似度均大于0.5,并且计算得到的相似度大于0.8时,则可以判断待识别字符为当前模板字符,实现了对提取字符的识别。此外,当存在关联字符时,例如实施例7中的“1”和“3”,则将关联字符的识别结果作为一个整体,即,“13”。
实施例11
本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例10提供的提取字符的方法。
实施例12
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例10提供的提取字符的方法的步骤。
实施例13
本实施例提供一种提取字符的系统,图13示出了本实施例的模块示意图。参照图13,本实施例的系统包括:
图像初始化模块1,用于初始化字符图像,获得包括字符的二值图像。在本实施例中,若字符图像是彩色图像,则初始化字符图像包括对字符图像进行灰度化和二值化两项处理;若字符图像是灰度图像,则初始化字符图像可以直接对字符图像进行二值化处理。
具体地,在灰度化处理中,可以采用平均值法计算彩色字符图像中每一像素点的灰度,即,gray=(b+g+r)/3,由此,将彩色字符图像转换为灰度图像后,字符图像由多通道图像转换为单通道图像,像素点由3字节转换为单字节,大幅度降低了图像原始数据量,便于对图像进行计算,进而大幅度降低了字符提取识别的速度。
在二值化处理中,对于灰度图像,灰度值高于阈值的像素点,令其像素值为255,灰度值低于该阈值的像素点,令其像素值为0,如此,使得原始字符图像进一步得到简化,同时,还初步去除了原始字符图像中的噪点。其中,阈值可以取值为但不限于灰度图像中的灰度均值。
扫描框设置模块2,用于根据二值图像中字符的大小设置扫描框。在本实施例中,基于扫描框扫描二值图像,进而实现字符提取,从而扫描框大小应当与二值图像中字符大小大致相同。具体地,统计二值图像中字符的大小,可以确定扫描框的高度和宽度为二值图像中较大字符的高度和宽度。换言之,扫描框的高度可以在二值图像中字符的平均高度和最大高度之间取值,扫描框的宽度可以在二值图像中字符的平均宽度和最大宽度之间取值。
扫描模块3,用于利用扫描框沿着扫描路径扫描二值图像。具体地,在本实施例中,可以扫描框的左上角为起点按照预设的扫描路径(例如,自左向右)遍历二值图像中的所有像素点,实现扫描框对二值图像的扫描。应当理解,也可以根据实际情况缩小扫描框在二值图像上的扫描范围,如此,扫描框的左上角只需遍历调整后扫描范围内的所有像素点,以简化对二值图像的扫描。
提取条件判断模块4,用于判断扫描框内是否存在字符,若是,则调用提取模块5提取扫描框内的字符,并且调用扫描模块3将扫描框移至下一位置继续扫描二值图像;若否,则调用扫描模块3将扫描框移至下一位置继续扫描二值图像。
在本实施例中,二值图像包括字符,字符四周又通常留有空白。对于扫描框来说,其内部像素值之和大于0,则可以推断扫描框中存在字符,在此基础上,若其边界像素值和等于0,则可以推断当前扫描框的边界可能是字符的边界。
具体地,在本实施例中,扫描框在满足提取条件时其中存在字符,其中,提取条件包括:二值图像在扫描框内的像素值之和大于0,并且在扫描框边界上的像素值之和等于0。扫描框亦如图2所示,包括边界k,并且边界k和扫描框的内部框线p相距一个像素,当内部框线p包围范围内的像素值之和大于0,并且边界k上的像素值之和等于0时,此时可以判断扫描框满足提取条件,提取扫描框内的字符,继而扫描框移至下一位置继续扫描二值图像。否则,扫描框直接移至下一位置继续扫描二值图像。
在本实施例中,为了简化提取条件的判断,可以仅计算内部框线p上的像素值之和,当内部框线p上的像素值之和大于0,并且边界k上的像素值之和等于0时,此时可以判断扫描框满足提取条件。
应当理解,为了进一步简化提取条件的判断,亦如图3所示,可以首先计算内部框线p的边p1上的像素值之和,当边p1上的像素值之和大于0时,可以推断当前扫描框中存在字符,继而计算边界k的边k1上的像素值之和,当边k1上的像素值之和等于0时,可以推断边k1可能是字符的上边界,继而计算边界k的边k3上的像素值之和,当边k3上的像素值之和等于0时,可以推断边k3亦可能是字符的下边界,同样地,可以基于分别对边p4、k4、k2上的像素值之和的计算,来推断边k4和k2是否可能是字符的左右边界。
应当理解,为了简化提取条件的判断,内部框线p以及边界k上各边的判断组合并不限于上述举例,例如,还可以通过边p1和k1、边p2和k2、边p3和k3、边p4和k4的两两组合来分别判断当前扫描框是否满足提取条件。
在本实施例中,基于固定大小的扫描框来扫描二值图像,当扫描框满足提取条件时,则扫描框中存在字符,进而可以实现字符的提取,而无需检验字符边缘,也无需计算字符内在连通域,极大地简化了字符的提取,降低了提取字符的成本。
实施例14
在实施例13的基础上,本实施例提供一种提取字符的系统,较之实施例13,本实施例中扫描框的大小可以调整。
具体地,对于扫描框来说,其内部像素值之和大于0,则可以推断扫描框中存在字符,在此基础上,若其边界像素值之和大于0,则可以推断当前扫描框的边界并非字符的边界,当前扫描框的大小可能小于字符的大小;若其边界像素值和等于0,则可以推断当前扫描框的边界可能是字符的边界,因为当前扫描框的大小可能大于字符的大小。
在当前扫描框的大小可能小于字符的大小时,提取条件判断模块4还用于向外延伸扫描框的边界,直至二值图像在延伸后的边界上的像素值之和等于0,则调整后扫描框满足提取条件。在此基础上,提取模块5具体用于提取调整后扫描框。
参见图5,边界为k的扫描框是扫描框设置模块2设置的原始扫描框,此时,扫描框内部的像素值之和大于0,并且边界k上的像素值之和亦大于0,将边界k向外延伸,直至延伸后形成的边界k’上的像素值之和等于0,此时,边界为k’的扫描框满足提取条件,提取模块5提取边界为k’的扫描框内的字符。
参见图14,提取模块5包括:
内延单元51,在当前扫描框的大小可能大于字符的大小时,用于向内延伸扫描框的边界,直至二值图像在调整后的边界上的像素值之和大于0。
外延单元52,用于将调整后的边界向外延伸一个像素。
提取单元53,用于提取调整后扫描框内的字符。
参见图7,边界为k的扫描框是扫描框设置模块2设置的原始扫描框,此时,扫描框内部的像素值之和大于0,并且边界k、内部框线p上的像素值之和均等于0,内延单元51将边界k向内延伸,直至延伸后形成的边界(图中未示出)上的像素值之和大于0,此时,扫描框不满足提取条件,外延单元52再将边界向外延伸一个像素后得到边界k”,边界为k”的扫描框满足提取条件,提取单元53提取边界为k”的扫描框内的字符。
在本实施例中,扫描二值图像的扫描框的大小并不固定,当扫描框中存在字符,而扫描框的大小并非最合适时,可以将原始扫描框向内或者向外延伸,以获得最合适的扫描框,在提取字符之后,则可以继续以原始扫描框来扫描二值图像,较之固定大小的扫描框,能够更加灵活、更加适应地实现字符的提取。
实施例15
本实施例提供一种提取字符的系统,图15示出了本实施例的模块示意图。参照图15,较之上述实施例,本实施例的系统还包括:
关联字符判断模块6,用于在调用提取模块5之后判断扫描框向下一位置延伸预设长度的范围内是否有像素点,若是,则调用扫描模块3将扫描框移至下一位置继续扫描二值图像,关联字符标记模块7,用于将提取模块5提取到的当前字符和上一字符标记为关联字符;若否,则调用扫描模块3将扫描框移至下一位置继续扫描二值图像。
参照图8,若提取模块5提取扫描框中字符1之后,扫描框向下一位置延伸预设长度的范围s内有像素点,则关联字符判断模块6判断存在与字符1关联的字符3,扫描模块3继续扫描二值图像,继而提取模块5提取字符3之后,关联字符标记模块7将字符3和字符1标记为关联字符。
参照图9,若提取模块5提取扫描框中字符3之后,扫描框向下一位置延伸预设长度的范围s内没有像素点,则关联字符判断模块6判断不存在与字符3关联的字符,扫描模块3继续扫描二值图像,而关联字符标记模块7不必将继而提取的字符5与字符3关联。
在本实施例中,可以对二值图像中字符间距的大小进行统计,来确定预设长度。并且,范围s内有无像素点的判断,既可以通过计算范围s内的像素点之和进行判断,也可以通过计算如图10所示范围s内线段s1、s2、s3……(可以根据具体应用进行自定义设置)上的像素点之和进行判断,从而无论字符之间的形状差异,在提取字符时将关联字符进行标记,进而在后续对提取字符进行识别时,关联字符可以被识别为一个整体。
实施例16
本实施例提供一种提取字符的系统,较之上述实施例,本实施例的系统还包括用于识别提取到的字符的识别模块8。参照图16,识别模块8包括:
模板字符获取单元81,用于获取模板字符。
字符初始化单元82,用于初始化提取得到的字符,获得与模板字符大小相同的待识别字符。
相似度计算单元83,用于计算待识别字符和模板字符的相似度。
相似度判断单元84,判断相似度是否大于预设阈值。
若是,则调用识别单元85,识别单元85用于识别待识别字符为模板字符;
若否,则调用模板字符获取单元81获取另一模板字符。
在本实施例中,相似度计算单元83可以通过下式来计算相似度:
其中,n代表图像中像素点个数,pix1、pix2分别代表模板图像和待识别字符图像中的像素点i的像素值,m1、m2分别代表模板图像和待识别字符图像中的像素点像素值期望。此外,预设阈值可以根据具体应用进行自定义设置。
应当理解,为了进一步提高字符识别精度,可以根据相同的分割规则对模板字符和待识别字符进行分割,进而基于分割得到的各部分来判断待识别字符是否为当前模板字符。具体地,如图16所示,相似度计算单元83可以包括:
第一分割子单元831,用于根据分割模板将模板字符分割为若干模板子字符。
第二分割子单元832,用于根据分割模板将待识别字符分割为若干待识别子字符。
相似度计算子单元833,用于分别计算对应分割模板相同位置的模板子字符和待识别子字符的子相似度。
相应地,相似度判断单元84包括:
相似度判断子单元841,用于判断每个子相似度是否均大于对应的预设子阈值。
在本实施例中,分割模板以及预设子阈值可以根据具体应用进行自定义设置,例如,分割模板可以是二分模板,预设子阈值可以取值为0.5,预设阈值可以取值为0.8,若计算得到的子相似度均大于0.5,并且计算得到的相似度大于0.8时,则可以判断待识别字符为当前模板字符,实现了对提取字符的识别。此外,当存在关联字符时,例如实施例15中的“1”和“3”,则将关联字符的识别结果作为一个整体,即,“13”。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。