一种对图像进行字符识别的方法和装置转让专利

申请号 : CN201410549721.8

文献号 : CN104361312B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李健兰志才张连毅武卫东

申请人 : 北京捷通华声语音技术有限公司

摘要 :

本发明提供了一种对图像进行字符识别的方法和装置。所述方法包括:从待处理图像找出目标字符的边缘轮廓;在对所述目标字符进行二值化处理时,针对所述目标字符的边缘轮廓中的各个像素点,分别作为当前像素点,判断所述当前像素点属于所述目标字符还是属于所述目标字符的背景图像;若所述当前像素点属于所述目标字符,则针对所述当前像素点进行二值化处理;对进行二值化处理的图像进行字符识别。本发明可以减少图像处理的噪点,提高图像处理的速度。

权利要求 :

1.一种对图像进行字符识别的方法,其特征在于,包括:从待处理图像找出目标字符的边缘轮廓;

在对所述目标字符进行二值化处理时,针对所述目标字符的边缘轮廓中的各个像素点,分别作为当前像素点,判断所述当前像素点属于所述目标字符还是属于所述目标字符的背景图像;其中,所述判断所述当前像素点属于所述目标字符还是属于所述目标字符的背景图像包括:以所述当前像素点为中心,以预设边长确定一个正方形的阀值区域;

根据所述阀值区域内所有像素点的亮度统计所述阀值区域内亮度的比较值;

将所述当前像素点的亮度与所述比较值进行比较,若所述当前像素点的亮度大于所述比较值,则所述当前像素点为属于所述目标字符的背景图像,若所述当前像素点的亮度不大于所述比较值,则所述当前像素点为属于所述目标字符;

其中,所述根据所述阀值区域内所有像素点的亮度统计所述阀值区域内亮度的比较值包括:在所述阀值区域内计算每个像素点的梯度值,包括:计算所述像素点的左边像素点的亮度与右边像素点的亮度的第一绝对差值以及所述像素点的上边像素点的亮度与下边像素点的亮度的第二绝对差值,将所述第一绝对差值和所述第二绝对差值中最大的值作为所述梯度值;

计算所述阀值区域内所有像素点的梯度值的和;

计算所述阀值区域内各个像素点的亮度分别与所述梯度值的乘积的和,并除以所述梯度值的和,减去预设阀值的差作为所述比较值;

若所述当前像素点属于所述目标字符,则针对所述当前像素点进行二值化处理;

对进行二值化处理的图像进行字符识别。

2.根据权利要求1所述的方法,其特征在于,所述从待处理图像找出目标字符的边缘轮廓包括:对待处理图像中包含的各个像素点,对相邻的两个像素点的像素值进行比较;

若相邻两个像素点的像素值的差值大于预设阀值,则将像素值较大的像素点所在位置作为所述目标字符的边缘轮廓。

3.根据权利要求1所述的方法,其特征在于,所述从待处理图像找出目标字符的边缘轮廓还包括:针对得到的边缘轮廓,做出所述边缘轮廓的水平外接矩形;

查找所述待处理图像中与所述水平外接矩形重合的部分以及与最小外界矩形距离2个像素以内的区域,将查找的区域合并入所述边缘轮廓。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:计算所述目标字符的字符笔画的宽度作为所述预设边长,进一步包括:对所述目标字符的边缘轮廓按照预设的方向进行扫描;

统计每次扫描出现的相邻轮廓像素之间的距离值,并将出现次数最多的距离值作为所述目标字符的字符笔画的宽度。

5.一种对图像进行字符识别的装置,其特征在于,包括:轮廓查找模块,用于从待处理图像找出目标字符的边缘轮廓;

像素点判断模块,用于在对所述目标字符进行二值化处理时,针对所述目标字符的边缘轮廓中的各个像素点,分别作为当前像素点,判断所述当前像素点属于所述目标字符还是属于所述目标字符的背景图像;所述像素点判断模块包括:阀值区域确定子模块,用于以所述当前像素点为中心,以预设边长确定一个正方形的阀值区域;

比较值统计子模块,用于根据所述阀值区域内所有像素点的亮度统计所述阀值区域内亮度的比较值;

亮度比较子模块,用于将所述当前像素点的亮度与所述比较值进行比较,若所述当前像素点的亮度大于所述比较值,则所述当前像素点为属于所述目标字符的背景图像,若所述当前像素点的亮度不大于所述比较值,则所述当前像素点为属于所述目标字符;

其中,所述根据所述阀值区域内所有像素点的亮度统计所述阀值区域内亮度的比较值包括:在所述阀值区域内计算每个像素点的梯度值,包括:计算所述像素点的左边像素点的亮度与右边像素点的亮度的第一绝对差值以及所述像素点的上边像素点的亮度与下边像素点的亮度的第二绝对差值,将所述第一绝对差值和所述第二绝对差值中最大的值作为所述梯度值;

计算所述阀值区域内所有像素点的梯度值的和;

计算所述阀值区域内各个像素点的亮度分别与所述梯度值的乘积的和,并除以所述梯度值的和,减去预设阀值的差作为所述比较值;

二值化处理模块,用于针对属于所述目标字符的当前像素点进行二值化处理;

字符识别模块,用于对进行二值化处理的图像进行字符识别。

6.根据权利要求5所述的装置,其特征在于,所述轮廓查找模块包括:像素值比较子模块,用于对待处理图像中包含的各个像素点,对相邻的两个像素点的像素值进行比较;

像素值判断子模块,用于若相邻两个像素点的像素值的差值大于预设阀值,则将像素值较大的像素点所在位置作为所述目标字符的边缘轮廓。

7.根据权利要求5所述的装置,其特征在于,所述轮廓查找模块还包括:矩形确定子模块,用于针对得到的边缘轮廓,做出所述边缘轮廓的水平外接矩形;

区域查找子模块,用于查找所述待处理图像中与所述水平外接矩形重合的部分以及与最小外界矩形距离2个像素以内的区域;

区域合并子模块,用于将查找的区域合并入所述边缘轮廓。

说明书 :

一种对图像进行字符识别的方法和装置

技术领域

[0001] 本发明涉及字符识别领域,特别是涉及一种对图像进行字符识别的方法,以及,一种对图像进行字符识别的装置。

背景技术

[0002] OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查字符载体,比如纸上的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程,包括图像的预处理、字符的二值化、版面分析、字符切割和字符识别几个步骤。
[0003] 其中,图像的二值化是光学字符识别的重要步骤。图像二值化通常采用的方法是,针对待处理的图像计算一张阈值平面,然后根据阈值平面将图像中的各像素点进行二值分割。NiBlack方法是一种二值化阈值的计算方法,它以局部开窗口的方式为每个像素点计算一个阈值,能够较好地处理亮度不均匀的待处理图像。但是NiBlack方法所开的窗口大小是固定的,不能根据字符作自适应调整,处理后的图像噪点比较多。另外,NiBlack方法针对图像中的字符位置与背景位置的每个像素点都要计算阈值,所以耗时比较长。
[0004] 综上所述,在光学字符识别中,现有的图像的二值化处理方法存在耗时长、噪点多以及不能自适应地在字符周围开小窗口进行处理的问题。

发明内容

[0005] 本发明提供了一种对图像进行字符识别的方法和装置,以减少图像处理的噪点,提高图像处理的速度。
[0006] 本发明提供了一种对图像进行字符识别的方法,包括:
[0007] 从待处理图像找出目标字符的边缘轮廓;
[0008] 在对所述目标字符进行二值化处理时,针对所述目标字符的边缘轮廓中的各个像素点,分别作为当前像素点,判断所述当前像素点属于所述目标字符还是属于所述目标字符的背景图像;
[0009] 若所述当前像素点属于所述目标字符,则针对所述当前像素点进行二值化处理;
[0010] 对进行二值化处理的图像进行字符识别。
[0011] 优选地,所述从待处理图像找出目标字符的边缘轮廓包括:
[0012] 对待处理图像中包含的各个像素点,对相邻的两个像素点的像素值进行比较;
[0013] 若相邻两个像素点的像素值的差值大于预设阀值,则将像素值较大的像素点所在位置作为所述目标字符的边缘轮廓。
[0014] 优选地,所述从待处理图像找出目标字符的边缘轮廓还包括:
[0015] 针对得到的边缘轮廓,做出所述边缘轮廓的水平外接矩形;
[0016] 查找所述待处理图像中与所述水平外接矩形重合的部分以及与所述最小外界矩形距离2个像素以内的区域,将查找的区域合并入所述边缘轮廓。
[0017] 优选地,所述判断所述当前像素点属于所述目标字符还是属于所述目标字符的背景图像包括:
[0018] 以所述当前像素点为中心,以预设边长确定一个正方形的阀值区域;
[0019] 根据所述阀值区域内所有像素点的亮度统计所述阀值区域内亮度的比较值;
[0020] 将所述当前像素点的亮度与所述比较值进行比较,若所述当前像素点的亮度大于所述比较值,则所述当前像素点为属于所述目标字符的背景图像,若所述当前像素点的亮度不大于所述比较值,则所述当前像素点为属于所述目标字符。
[0021] 优选地,所述根据所述阀值区域内所有像素点的亮度统计所述阀值区域内亮度的比较值包括:
[0022] 在所述阀值区域内计算每个像素点的梯度值,包括:计算所述像素点的左边像素点的亮度与右边像素点的亮度的第一绝对差值以及所述像素点的上边像素点的亮度与下边像素点的亮度的第二绝对差值,将所述第一绝对差值和所述第二绝对差值中最大的值作为所述梯度值;
[0023] 计算所述阀值区域内所有像素点的梯度值的和;
[0024] 计算所述阀值区域内各个像素点的亮度分别与所述梯度值的乘积的和,并除以所述梯度值的和,减去预设阀值的差作为所述比较值。
[0025] 优选地,所述方法还包括:
[0026] 计算所述目标字符的字符笔画的宽度作为所述预设边长,进一步包括:
[0027] 对所述目标字符的边缘轮廓按照预设的方向进行扫描;
[0028] 统计每次扫描出现的相邻轮廓之间的距离值,并将出现次数最多的距离值作为所述目标字符的字符笔画的宽度。
[0029] 本发明还提供了一种对图像进行字符识别的装置,包括:
[0030] 轮廓查找模块,用于从待处理图像找出目标字符的边缘轮廓;
[0031] 像素点判断模块,用于在对所述目标字符进行二值化处理时,针对所述目标字符的边缘轮廓中的各个像素点,分别作为当前像素点,判断所述当前像素点属于所述目标字符还是属于所述目标字符的背景图像;
[0032] 二值化处理模块,用于针对属于所述目标字符的当前像素点进行二值化处理;
[0033] 字符识别模块,用于对进行二值化处理的图像进行字符识别。
[0034] 优选地,所述轮廓查找模块包括:
[0035] 像素值比较子模块,用于对待处理图像中包含的各个像素点,对相邻的两个像素点的像素值进行比较;
[0036] 像素值判断子模块,用于若相邻两个像素点的像素值的差值大于预设阀值,则将像素值较大的像素点所在位置作为所述目标字符的边缘轮廓。
[0037] 优选地,所述轮廓查找模块还包括:
[0038] 矩形确定子模块,用于针对得到的边缘轮廓,做出所述边缘轮廓的水平外接矩形;
[0039] 区域查找子模块,用于查找所述待处理图像中与所述水平外接矩形重合的部分以及与所述最小外界矩形距离2个像素以内的区域;
[0040] 区域合并子模块,用于将查找的区域合并入所述边缘轮廓。
[0041] 优选地,所述像素点判断模块包括:
[0042] 阀值区域确定子模块,用于以所述当前像素点为中心,以预设边长确定一个正方形的阀值区域;
[0043] 比较值统计子模块,用于根据所述阀值区域内所有像素点的亮度统计所述阀值区域内亮度的比较值;
[0044] 亮度比较子模块,用于将所述当前像素点的亮度与所述比较值进行比较,若所述当前像素点的亮度大于所述比较值,则所述当前像素点为属于所述目标字符的背景图像,若所述当前像素点的亮度不大于所述比较值,则所述当前像素点为属于所述目标字符。
[0045] 与背景技术相比,本发明包括以下优点:
[0046] 本发明实施例通过确定目标字符的边缘轮廓,进一步判断边缘轮廓内的各个像素点为背景像素点还是属于字符的像素点,仅针对属于目标字符的当前像素点进行二值化处理,依据本发明实施例,一方面在对图像进行局部二值化处理时,仅仅针对有字符的地方进行二值化处理,没有字符的地方不进行二值化处理,节约了大量的处理资源,加快了图像处理的速度。另一方面在对图像进行局部二值化时,所开的窗口与字符相关,能够根据字符作自适应调整,噪点少,二值化效果较好。

附图说明

[0047] 图1是本发明实施例的一种对图像进行字符识别的方法的流程图;
[0048] 图2是本发明实施例的一个示例中待处理图像;
[0049] 图3是对待处理图像进行找轮廓及轮廓合并后得到的字符的轮廓图像;
[0050] 图4是本发明实施例的一个示例中选取A点为当前点的待处理图像;
[0051] 图5是本发明实施例的一个示例中选选取A点为当前点的字符轮廓图;
[0052] 图6是本发明实施例的一个示例中选取B点为当前点的待处理图像;
[0053] 图7是本发明实施例的一个示例中选取B点为当前点的轮廓合并后的字符的轮廓图;
[0054] 图8是本发明实施例的一个示例中对待处理图像进行二值化后的图像;
[0055] 图9是本发明实施例的一种对图像进行字符识别的装置的结构框图。

具体实施方式

[0056] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0057] 光学字符识别过程一般包括以下过程:
[0058] (1)图像的预处理:包括图像增强、去噪等处理过程。
[0059] (2)字符的二值化:对摄像头拍摄的图片,大多数是彩色图像,彩色图像所含信息量巨大,对于图片的内容,我们可以简单的分为前景与背景,为了让计算机更快的、更好地识别文字,我们需要先对彩色图进行处理,使图片只有前景信息与背景信息,可以简单的定义前景信息为黑色,背景信息为白色,这就是二值化图。
[0060] (3)版面分析:将文档图片分段落、分行的过程叫做版面分析。
[0061] (4)字符切割:由于拍照条件的限制,经常造成字符粘连,断笔,因此极大限制了识别系统的性能,这就需要对字符进行切割。
[0062] (5)字符识别:主要有模板匹配、特征提取等识别方法。
[0063] 上述处理步骤中,对图像进行字符识别的图像二值化步骤中存在噪点较多,耗时较长的问题,有鉴于此,本发明实施例提供了一种新的对图像进行字符识别的机制,下面通过实施例对本发明所述方法的实现流程进行详细说明。
[0064] 参照图1,其示出了本发明实施例所述一种对图像进行字符识别的方法的流程图,所述方法具体可以包括:
[0065] 步骤101、从待处理图像找出目标字符的边缘轮廓。
[0066] 进行二值化处理的待处理图像中包括字符,依据背景技术的方案,在对图像进行二值化处理时,针对图像中的每个像素点,包括字符区域的像素点和非字符的背景区域的像素点均进行二值化处理。
[0067] 通过字迹比对或是像素比对找出目标字符的边缘轮廓,或是可以通过各种可实现的方案找出目标字符的边缘轮廓,本发明实施例中,优选地,所述从待处理图像找出目标字符的边缘轮廓包括:
[0068] 子步骤S11、对待处理图像中包含的各个像素点,对相邻的两个像素点的像素值进行比较。
[0069] 子步骤S12、若相邻两个像素点的像素值的差值大于预设阀值,则将像素值较大的像素点所在位置作为所述目标字符的边缘轮廓。
[0070] 待处理图像中,目标字符所包含的各个像素点的像素值明显会高于周围各个像素点的像素值,因此,通过比对相邻像素点的像素值,找出像素值突变的地方就是字符的边缘轮廓处,可以预先设置像素值突变的大小,相邻两个像素点的像素值的差值大于预设阀值的时候,可以认为像素值在字符的边缘轮廓处发生了突变,进一步可以将较大的像素值对应的像素点作为字符的边缘轮廓上的像素点。
[0071] 通过对各组相邻像素点进行比较,可以找出位于目标字符边缘轮廓的像素点,根据这些像素点可以确定目标字符的边缘轮廓。
[0072] 在具体地实现中,还可以对通过上述方案找出的边缘轮廓进行优化,进一步优选地,所述从待处理图像找出目标字符的边缘轮廓还包括:
[0073] 子步骤S13、针对得到的边缘轮廓,做出所述边缘轮廓的水平外接矩形;
[0074] 子步骤S14、查找所述待处理图像中与所述水平外接矩形重合的部分以及与所述最小外界矩形距离2个像素以内的区域,将查找的区域合并入所述边缘轮廓。
[0075] 为避免将字符上一些像素值较小的点漏掉,可以将边缘轮廓附近的点也合并入边缘轮廓,针对边缘轮廓做出水平外接矩形,将待处理图像中与水平外接矩形重合的区域并入边缘轮廓,还可以并入距离水平外接矩形很近的像素点,例如距离边缘轮廓2个像素点的区域。
[0076] 步骤102、在对所述目标字符进行二值化处理时,针对所述目标字符的边缘轮廓中的各个像素点,分别作为当前像素点,判断所述当前像素点属于所述目标字符还是属于所述目标字符的背景图像。
[0077] 本发明实施例为了减小二值化处理的工作量,提高二值化处理的速度,首先判断边缘轮廓中包含的各个像素点是否为目标字符上的像素点,具体地,所述判断所述当前像素点属于所述目标字符还是属于所述目标字符的背景图像包括:
[0078] 子步骤S21、以所述当前像素点为中心,以预设边长确定一个正方形的阀值区域;
[0079] 子步骤S22、根据所述阀值区域内所有像素点的亮度统计所述阀值区域内亮度的比较值;
[0080] 子步骤S23、将所述当前像素点的亮度与所述比较值进行比较,若所述当前像素点的亮度大于所述比较值,则所述当前像素点为属于所述目标字符的背景图像,若所述当前像素点的亮度不大于所述比较值,则所述当前像素点为属于所述目标字符。
[0081] 通过比较亮度值可以判断各个像素点是否属于目标字符,一般情况下,目标字符上的像素点的亮度要低于背景区域的像素点的亮度,在这种情况下可以将亮度较低的点作为目标字符上的像素点,将亮度较高的点作为背景图像中的像素点。
[0082] 首先,可以划定一个区域进行亮度的比较,本发明实施例中,优选地采用预设边长划定一个正方形的阀值区域,对阀值区域里面的像素点的亮度进行比较,进一步统计,阀值区域内的像素点的亮度的一个比较值,作为一个亮度比较的基准,若超出该比较值,则认为是属于背景图像的像素点,若不超出该比较值,则认为是属于目标字符的像素点。
[0083] 需要说明的是,针对目标字符上的像素点的亮度要高于背景区域的像素点的亮度的情况,做出比较值之后,可以将亮度较高的点作为目标字符上的像素点,将亮度较低的点作为背景图像中的像素点。
[0084] 其中,优选地,所述根据所述阀值区域内所有像素点的亮度统计所述阀值区域内亮度的比较值包括:
[0085] 子步骤S22-1、在所述阀值区域内计算每个像素点的梯度值,包括:计算所述像素点的左边像素点的亮度与右边像素点的亮度的第一绝对差值以及所述像素点的上边像素点的亮度与下边像素点的亮度的第二绝对差值,将所述第一绝对差值和所述第二绝对差值中最大的值作为所述梯度值;
[0086] 子步骤S22-2、计算所述阀值区域内所有像素点的梯度值的和;
[0087] 子步骤S22-3、计算所述阀值区域内各个像素点的亮度分别与所述梯度值的乘积的和,并除以所述梯度值的和,减去预设阀值的差作为所述比较值。
[0088] 针对阀值区域中的各个像素点,首先计算各个像素点的亮度的梯度值,在正方形的阈值区域内求每一点Pi,j的梯度值Gi,j,其中i∈1…2m,j∈1…2m,m为正方形区域的预设边长。
[0089] 具体地,计算点P(i,j)右边的一点的亮度L(i+1,j)减去点P(i,j)左边的一点的亮度L(i-1,j)的绝对值,计算点P(i,j)下边的一点的亮度L(i,j-1)减去P(i,j)上边的一点的亮度L(i,j+1)的绝对值,并提取两个绝对值中的最大值作为点P(i,j)的梯度值G(i,j),即G(i,j)=max(︱L(i+1,j)-L(i-1,j)︱,︱L(i,j-1v-L(i,j+1)︱)。接着,计算正方形阈值区域内所有点的梯度和为SUM1=∑Gij,计算正方形阈值区域内所有点的亮度与梯度值乘积的和为SUM=∑Li,j*Gij。最后,计算比较阈值th=SUM/SUM1-5。
[0090] 其中,预设边长可以根据实际情况或是经验预先设置,也可以临时计算字符笔画的宽度作为预设边长,所述方法还包括:
[0091] 计算所述目标字符的字符笔画的宽度作为所述预设边长,进一步包括:
[0092] 对所述目标字符的边缘轮廓按照预设的方向进行扫描;
[0093] 统计每次扫描出现的相邻轮廓像素之间的距离值,并将出现次数最多的距离值作为所述目标字符的字符笔画的宽度。
[0094] 对字符轮廓按照预设的方向进行扫描,例如可以从先左向右、再从上向下扫描,获取相邻轮廓像素之间的距离值,并统计各个距离值出现的次数,将出现次数最多的距离值作为字符笔画的宽度。例如,每次扫描出现的第一个像素与第二个像素之间的距离、第三个像素与第四个像素之间的距离...,将出现次数最多的距离值确定为字符笔画的宽度。
[0095] 通过该步骤,在对图像进行局部二值化时,所开的窗口与字符相关,能够根据字符作自适应调整,噪点少,二值化效果较好。
[0096] 步骤103、若所述当前像素点属于所述目标字符,则针对所述当前像素点进行二值化处理。
[0097] 在对图像进行局部二值化处理时,仅仅针对有字符的地方进行二值化处理,没有字符的地方不进行二值化处理,节约了大量的处理资源,加快了图像处理的速度。
[0098] 步骤104、对进行二值化处理的图像进行字符识别。
[0099] 在进行二值化处理后,可以对图像中的字符进行识别,在进行字符识别之前,可以首先进行版面分析和字符切割的步骤,将文档图片分段落、分行的过程为版面分析,由于拍照条件的限制,经常造成字符粘连,断笔,因此极大限制了识别系统的性能,这就需要对字符进行切割,之后进行的字符识别主要有模板匹配、特征提取等识别方法。具体地如何进行字符识别可以按照实际需求选择任意可实现的方案,本发明对此并不做限制。
[0100] 为使本领域技术人员更好地理解本发明实施例,以下按照步骤先后顺序的方式,列出了本发明实施例中二值化处理部分的具体步骤。
[0101] (1)找出字符的边缘轮廓。像素值突变的地方是字符的轮廓处,即像素值由小突然变大的地方是字符的边缘轮廓。
[0102] (2)进行轮廓合并。作出轮廓的水平外接矩形,将水平外接矩形重合的轮廓或者水平外接矩形相距很近,比如2个像素以内的轮廓进行合并。
[0103] (3)求出字符笔画的宽度。对字符轮廓进行扫描,分别从左向右、从上向下进行像素的扫描,统计每次扫描出现的第一个像素与第二个像素之间的距离、第三个像素与第四个像素之间的距离...,将出现次数最多的距离值确定为字符笔画的宽度m。
[0104] (4)选取字符轮廓内的一个像素点作为当前点,判断当前点是字符还是背景。该过程包括以下步骤:
[0105] (a)以当前点为中心,以2m为边长,确定一个正方形的阈值区域。
[0106] (b)在正方形的阈值区域内求每一点Pi,j的梯度值Gi,j,其中i∈1…2m,j∈1…2m。计算方法为点Pi,j右边的一点的亮度Li+1,j减去点Pi,j左边的一点的亮度Li-1,j的绝对值与点Pi,j下边的一点的亮度Li,j-1减去Pi,j上边的一点的亮度Li,j+1的绝对值中的最大值作为点Pi,j的梯度值Gi,j,即Gi,j=max(︱Li+1,j-Li-1,j︱,︱Li,j-1-Li,j+1︱)。
[0107] (c)计算正方形阈值区域内所有点的梯度和SUM1=∑Gij。
[0108] (d)计算正方形阈值区域内所有点的亮度与梯度值乘积的和SUM=∑Li,j*Gij。
[0109] (e)计算比较阈值th=SUM/SUM1-5。
[0110] (f)以当前点的亮度与比较阈值th进行比较,如果当前点的亮度大于th,则当前点为背景的点,如果当前点的亮度小于th,则当前点为字符的点。
[0111] (g)选定还没有判断的字符轮廓水平外接矩形内的一点为新的当前点,重复步骤(a)至(f),直至字符轮廓水平外接矩形内的点都判断完毕。
[0112] 以下通过一个具体的示例对本发明实施例中图像的二值化处理的部分进行说明。如图2所示,为本发明实施例的一个示例中待处理图像,称之为原始图像。
[0113] 对原始图像进行找字符边缘轮廓并进行轮廓合并处理,得到图3所示轮廓图。图3为本发明实施例的一个示例中对待处理图像进行找轮廓及轮廓合并后得到的字符的轮廓图。
[0114] 求出字符笔画的宽度,并判断像素点为背景中的像素点还是字符中的像素点:
[0115] 针对一个像素点A点:
[0116] 图4为本发明实施例的一个示例中选取A点为当前点的待处理图像。选取A点为“庄”字字符上的当前点,A点的亮度为31。图5为本发明实施例的一个示例中选选取A点为当前点的字符轮廓图。对“庄”字的字符区域进行扫描,求出字符的笔画宽度为9。
[0117] 以A点为中心在9×9范围内开小窗口,根据Gi,j=max(︱Li+1,j-Li-1,j︱,︱Li,j-1-Li,j+1︱),求出正方形窗口内所有点的梯度值,再根据公式SUM1=∑Gij,求出正方形阈值区域内所有点的梯度和SUM1=3953。
[0118] 根据公式SUM=∑Li,j*Gij,求出正方形阈值区域内所有点的亮度与梯度值乘积的和SUM=349562。
[0119] 根据公式th=SUM/SUM1-5,计算出比较阈值th=83.4295。
[0120] 比较A点亮度与比较阈值th的大小,31<83.4295,判断当前点A为字符,将A点灰度调整为0。
[0121] 针对另一个像素点B点:
[0122] 图6为本发明实施例的一个示例中选取B点为当前点的待处理图像。选取B点为“庄”字字符上的当前点,B点的亮度为150。图7为本发明实施例的一个示例中选取B点为当前点的轮廓合并后的字符的轮廓图。
[0123] 以B为中心在9×9范围内开小窗口,根据Gi,j=max(︱Li+1,j-Li-1,j︱,︱Li,j-1-Li,j+1︱),求出正方形窗口内所有点的梯度值,再根据公式SUM1=∑Gij,求出正方形阈值区域内所有点的梯度和SUM1=2915。
[0124] 根据公式SUM=∑Li,j*Gij,求出正方形阈值区域内所有点的亮度与梯度值乘积的和SUM=295822。
[0125] 根据公式th=SUM/SUM1-5,计算出比较阈值th=96.4827。
[0126] 比较A点亮度与比较阈值th的大小,150>96.4827,判断当前点B为背景,将B点灰度调整为255。
[0127] 选取“庄”字的轮廓的水平外接矩形内的除A、B点外的其它点为当前点,按照前述方法判断各点是字符还是背景,得到“庄”字区域的二值化图像。按照上述方法对其它字符进行二值化,得到图8的二值化后的图像。图8为本发明实施例的一个示例中对待处理图像进行二值化后的图像。
[0128] 综上所述,本发明实施例通过确定目标字符的边缘轮廓,进一步判断边缘轮廓内的各个像素点为背景像素点还是属于字符的像素点,仅针对属于目标字符的当前像素点进行二值化处理,依据本发明实施例,一方面在对图像进行局部二值化处理时,仅仅针对有字符的地方进行二值化处理,没有字符的地方不进行二值化处理,节约了大量的处理资源,加快了图像处理的速度。另一方面在对图像进行局部二值化时,所开的窗口与字符相关,能够根据字符作自适应调整,噪点少,二值化效果较好。
[0129] 需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。
[0130] 基于上述方法实施例的说明,本发明还提供了相应的对图像进行字符识别的装置实施例,来实现上述方法实施例所述的内容。
[0131] 参照图9,其示出了本发明实施例所述一种对图像进行字符识别的装置的结构框图,包括:
[0132] 轮廓查找模块201,用于从待处理图像找出目标字符的边缘轮廓;
[0133] 像素点判断模块202,用于在对所述目标字符进行二值化处理时,针对所述目标字符的边缘轮廓中的各个像素点,分别作为当前像素点,判断所述当前像素点属于所述目标字符还是属于所述目标字符的背景图像;
[0134] 二值化处理模块203,用于针对属于所述目标字符的当前像素点进行二值化处理;
[0135] 字符识别模块204,用于对进行二值化处理的图像进行字符识别。
[0136] 本发明实施例中,优选地,所述轮廓查找模块包括:
[0137] 像素值比较子模块,用于对待处理图像中包含的各个像素点,对相邻的两个像素点的像素值进行比较;
[0138] 像素值判断子模块,用于若相邻两个像素点的像素值的差值大于预设阀值,则将像素值较大的像素点所在位置作为所述目标字符的边缘轮廓。
[0139] 本发明实施例中,优选地,所述轮廓查找模块还包括:
[0140] 矩形确定子模块,用于针对得到的边缘轮廓,做出所述边缘轮廓的水平外接矩形;
[0141] 区域查找子模块,用于查找所述待处理图像中与所述水平外接矩形重合的部分以及与所述最小外界矩形距离2个像素以内的区域;
[0142] 区域合并子模块,用于将查找的区域合并入所述边缘轮廓。
[0143] 本发明实施例中,优选地,所述像素点判断模块包括:
[0144] 阀值区域确定子模块,用于以所述当前像素点为中心,以预设边长确定一个正方形的阀值区域;
[0145] 比较值统计子模块,用于根据所述阀值区域内所有像素点的亮度统计所述阀值区域内亮度的比较值;
[0146] 亮度比较子模块,用于将所述当前像素点的亮度与所述比较值进行比较,若所述当前像素点的亮度大于所述比较值,则所述当前像素点为属于所述目标字符的背景图像,若所述当前像素点的亮度不大于所述比较值,则所述当前像素点为属于所述目标字符。
[0147] 本发明实施例中,优选地,所述比较值统计子模块包括:
[0148] 梯度值计算子单元,用于在所述阀值区域内计算每个像素点的梯度值,包括:计算所述像素点的左边像素点的亮度与右边像素点的亮度的第一绝对差值以及所述像素点的上边像素点的亮度与下边像素点的亮度的第二绝对差值,将所述第一绝对差值和所述第二绝对差值中最大的值作为所述梯度值;
[0149] 梯度值之和计算子单元,用于计算所述阀值区域内所有像素点的梯度值的和;
[0150] 比较值计算子模块,用于计算所述阀值区域内各个像素点的亮度分别与所述梯度值的乘积的和,并除以所述梯度值的和,减去预设阀值的差作为所述比较值。
[0151] 本发明实施例中,优选地,所述装置还包括:
[0152] 边长计算模块,用于计算所述目标字符的字符笔画的宽度作为所述预设边长;
[0153] 所述边长计算模块包括:
[0154] 轮廓扫描子模块,用于对所述目标字符的边缘轮廓按照预设的方向进行扫描;
[0155] 宽度确定子模块,用于统计每次扫描出现的相邻轮廓像素之间的距离值,并将出现次数最多的距离值作为所述目标字符的字符笔画的宽度。
[0156] 本发明实施例通过确定目标字符的边缘轮廓,进一步判断边缘轮廓内的各个像素点为背景像素点还是属于字符的像素点,仅针对属于目标字符的当前像素点进行二值化处理,依据本发明实施例,一方面在对图像进行局部二值化处理时,仅仅针对有字符的地方进行二值化处理,没有字符的地方不进行二值化处理,节约了大量的处理资源,加快了图像处理的速度。另一方面在对图像进行局部二值化时,所开的窗口与字符相关,能够根据字符作自适应调整,噪点少,二值化效果较好。
[0157] 对于上述图对图像进行字符识别的装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1所示方法实施例的部分说明即可。
[0158] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0159] 本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
[0160] 本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0161] 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0162] 在本发明中,“组件”、“装置”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,组件可以、但不限于是运行于处理器的过程、处理器、对象、可执行组件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是组件。一个或多个组件可在执行的过程和/或线程中,并且组件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。组件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一组件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
[0163] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0164] 而且,上文中的“和/或”表示本文既包含了“和”的关系,也包含了“或”的关系,其中:如果方案A与方案B是“和”的关系,则表示某实施例中可以同时包括方案A和方案B;如果方案A与方案B是“或”的关系,则表示某实施例中可以单独包括方案A,或者单独包括方案B。
[0165] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0166] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0167] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0168] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0169] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0170] 以上对本发明所提供的一种对图像进行字符识别的方法和对图像进行字符识别的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。