基于贪婪算法的文档图像中干扰线的去除方法与流程

文档序号:19947800发布日期:2020-02-18 09:44阅读:1379来源:国知局
基于贪婪算法的文档图像中干扰线的去除方法与流程

本发明属于文档图像的计算机识别技术,具体是一种基于贪婪算法的文档图像中干扰线的去除方法。



背景技术:

文档图像是通过扫描、照相获得的包含大量文字信息的图像资料。一方面这些资料是数字化的文件,很容易保存在计算机的存储器中,方便存储和管理。另一方面,这些文档可以使用ocr软件识别,能够快速获得文档图像中的内容,避免了繁琐的文字输入工作。只包含文字的文档图像,其ocr的识别率非常高,已经在各种领域中得到应用。然而文档中经常包含各种干扰信息,如干扰线。当人们在原始文档上留下横线等来标记文档中的重要内容,或者文档本身就存在各种横线表示需要填写信息或者其他提醒,则文档的ocr的识别率会急剧下降。因此,如何去除文档图像中的干扰线成为文档图像ocr的一个重要的预处理步骤。

去除干扰线的以往工作可以分为两类,一类是规则线段,另一类是不规则的手划线。规则线段一般表现为印刷的下划线、表格的边缘线等。bai等人通过下边线分析获得干扰线的位置,但是该方法只能处理下划线。shi等人为了去除规则的线段使用了一种directionallocalprofiling方法,但是该方法只能去除规则线段。alipour等人利用了规则横线的特征去除横线。imtiaz等人使用滑动窗口中的熵来判断当前区域中是否包含干扰线。不规则的干扰线比如手划线的表现较规则的复杂得多,文献中也出现了多种方法。cheng等人使用超图来检测图像中的干扰线,整个方法稍显复杂,且没有说明当干扰线与字符笔画重合时如何只去掉干扰线,而保留字符。kaur等人基于连通元的分类找到干扰线的区域。banerjee等人也使用连通元检测干扰线区域,并对与文字粘连的干扰线特殊处理。rehman等人首先处理了粘连的字符和干扰线,然后判断连通元。pratihar等人利用文档图像中的像素间的几何关系检测干扰线。das等人利用gabor滤波器检测干扰线。这些方法均存在着准确度低或适用范围小等缺陷。



技术实现要素:

本发明所要解决的技术问题是,提供一种能够去除文档图像中的干扰线,处理准确率高、处理速度快的基于贪婪算法的文档图像中干扰线的去除方法。

本发明的方法包括以下步骤:

a.将文档图像二值化处理,去除部分噪声像素,提取出前景部分的文字和干扰线图像;

b.将文字和干扰线的线条细化,得到单像素的线条;

c.干扰线检测:对于横向干扰线,横向单一方向扫描文档图像,识别扫描方向上的中心线,对长度较长的中心线赋予更高的权值,计算出的中心线权值若超过设定阈值,则认为其为干扰线;对于竖向干扰线,通过旋转图像或模板的方式使之变换为横向后,以相同的方法识别;检测横向和竖向的过程中也附带检测了斜向的干扰线;

d.干扰线去除,通过前景像素与干扰线的距离判断其归属,将属于干扰线的像素去除,得到处理后的文档图像。

进一步的,步骤a中二值化的方法是:将大小为m×n的图像分割成ml×nl块,其中每块包含的像素数目为(m×n)/(ml×nl),所述ml和nl的取值范围是5~10之间的整数;每个小块中的局部阈值使用大津法获得,然后使用线性插值从局部阈值获得每个位置的阈值t(i,j);二值化描述为:

式(1)中b(i,j)表示二值化后各点的取值,i(i,j)表示像素点的灰度值。

进一步的,步骤b中的细化采用matlab中的细化方法(函数bwmorph,参数‘thin’)获得文档文字和干扰线的中心线;

进一步的,步骤c中每条中心线的权值vli的算法如下:

(1)初始化,设vli=0(i=1,...,n),其中n是图像中包含中心线的数目;

(2)横向单一方向扫描文档图像,扫描前方的像素,并加上相应的权值;前方像素与当前像素的连线与扫描方向之间的夹角越小则权值越高;

(3)循环步骤(2),直到遍历了细化图像中每个像素。

进一步的,步骤d中判断前景像素归属的具体方法是:某个前景像素到文字中心线cw和干扰线中心线cg哪个距离近,则认为它属于距离近的那个部分;即

其中dcw是像素i(x,y)到cw的距离,dcg是像素i(x,y)到cg的距离,if为归属前景,ib为归属背景。

进一步的,

求解像素到文字中心线cw的距离的方法是:

(1)初始化距离矩阵dcw(与图像大小相同)中所有位置的值为一个极大值max(实验中可取值65535);

(2)设置dcw中所有与cw重合位置的距离值为0;

(3)设置dcw中的满足下列要求的位置距离值为1,要求:距离值为max,且与距离值为0的位置相邻;

(4)循环步骤(3),设置所有距离值为max且与距离值为i位置相邻的位置距离值为i+1;

以相同的方法求解像素到干扰线中心线cg的距离矩阵dcg。

本发明先通过预处理得到每个文字或线条的中心线,然后利用贪婪算法计算每条中心线的权值,并认为权值较大的中心线处存在干扰线,最后结合形态学操作去除干扰线并尽可能保留文字。提出的算法有效的去除了干扰线部分,从而降低了文档图像中的干扰因素;该方法使用了贪婪算法计算线条代价,整个算法速度较快,并且在各种类型的文档图像的测试中,获得了较好的效果。

附图说明

图1是本发明实施例步骤a对文档图像二值化处理后的效果示意图;

图2是本发明实施例步骤b对文档图像线条细化处理后的效果示意图;

图3是本发明实施例步骤c对扫描图像时对于不同位置前方像素情况下的权值设定示意图;

图4是本发明实施例步骤c结束后提取出的干扰线图像示意图;

图5是本发明实施例步骤d去除干扰线后的文字图像示意图。

具体实施方式

本发明的方法包括以下步骤:

a.将文档图像二值化处理,去除部分噪声像素,提取出前景部分的文字和干扰线图像。

二值化是一种常规的预处理,二值化的算法很多,性能也不尽相同。对于文字比较清晰的图像,用全局阈值的方法就可以获得较好的二值化效果。但是若获取的文档图像质量较差,就需要局部阈值。考虑到通过扫描等方法获得的文档图像的亮度是较均匀变化的,本发明实施例使用一种由局部阈值插值产生全部位置阈值的方法。

局部阈值是一个局部区域的阈值,这种局部区域不能太大,若太大则阈值可能不适用,也不能很小,若很小则无法反映前景和背景的颜色分布。

其具体算法是:

将大小为m×n的图像分割成ml×nl块,其中每块包含的像素数目为(m×n)/(ml×nl),所述ml和nl的取值范围是5~10之间的整数;每个小块中的局部阈值使用大津法获得,然后使用线性插值从局部阈值获得每个位置的阈值t(i,j);二值化描述为:

式(1)中b(i,j)表示二值化后各点的取值,i(i,j)表示像素点的灰度值。

处理结果如图1所示,图1(a)是一幅文档图像,图1(b)是其二值化的结果。从图中可以看出,提出的二值化方法在不均匀光照的图像中也取得了较好的二值化效果。

b.将文字和干扰线的线条细化,得到单像素的线条;

步骤b中的细化采用matlab中的细化方法(函数bwmorph,参数‘thin’)获得文档文字和干扰线的中心线。一般情况下,文字和干扰线都可以通过笔画中心线来判断,而且中心线去除了干扰因素,有效地降低了判断的难度。本发明实施例采用matlab中的细化方法,该方法通过8个模板不断消减边缘多余像素,得到较好的细化效果。如图2显示的是细化效果,图2(a)是包含干扰线的图,图2(b)是图2(a)的细化结果。

c.干扰线检测:对于横向干扰线,横向单一方向扫描文档图像,识别扫描方向上的中心线,对长度较长的中心线赋予更高的权值,计算出的中心线权值若超过设定阈值,则认为其为干扰线;对于竖向干扰线,通过旋转图像或模板的方式使之变换为横向后,以相同的方法识别;检测横向和竖向的过程中也附带检测了斜向的干扰线;

由于干扰线的中心线具有以下和文字不同的特征:

(1)干扰线一般为单一方向,横向居多,偶尔出现竖向和斜向,极少旋转方向;

(2)干扰线一般较长。

因此本发明实施例中考虑去除的干扰线具有以下特征:单一方向,且大于一定长度。这两种特征既符合干扰线的特性,又极大地降低了检测干扰线的难度。其中“单一方向”通过扫描图像时只遵循横向单一方向扫描来保障,而“大于一定长度”通过线段的权值vli大于阈值tl保证,即:

vli>tl(2)

其中计算每条中心线的权值vli的算法,如下:

(1)初始化,设vli=0(i=1,...,n),其中n是图像中包含中心线的数目;

(2)横向单一方向扫描文档图像,扫描前方的像素,并加上相应的权值;前方像素与当前像素的连线与扫描方向之间的夹角越小则权值越高;

(3)循环步骤(2),直到遍历了细化图像中每个像素。

如图3显示了步骤(2)中处理的三类情况,黑色的为当前像素,灰色的是前方像素,这些都是中心线中的像素。

当前像素的前方像素分三种情况:图3(a)表示正前方有像素,图3(b)表示侧前方有像素,而图3(c)的倾斜的角度更大一些。图3(a)的情况权值为3,图3(b)的情况权值为2,图3(c)的情况权值为1。对于一个位置,只能属于这三种情况其中的一种,并优先属于权重较大的。比如一个位置既满足图3(a)和图3(b)时,则它只属于图3(a),其他情况类推。由于在一个位置只取了最大值,因此提出的算法属于贪婪算法的一种。

以上算法主要考虑的是横向的干扰线,对于竖向的干扰线检测,有两种方案:旋转模板或者旋转图像,两种方法都是可行的。斜向的干扰线在横向和竖向的检测过程中都有兼顾,因此不需要单独列出来。

通过以上算法,计算图2的中心线权值,得到干扰线中心线cg,如图4所示。除掉干扰线部分则是文字中心线cw。

d.干扰线去除,通过前景像素与干扰线的距离判断其归属,将属于干扰线的像素去除,得到处理后的文档图像。

检测出干扰线的具体位置后,需要将二值化图像b中的干扰线去除,留下文字部分。一般情况下,某个前景像素到文字中心线cw和干扰线中心线cg哪个距离近,就可以认为它属于距离近的那个部分。即

其中dcw是像素i(x,y)到cw的距离,dcg是像素i(x,y)到cg的距离。

直接求解距离的计算量比较大,因此可以使用以下方案(以求到文字中心线cw的距离为例):

(1)初始化距离矩阵dcw(与图像大小相同)中所有位置的值为一个极大值max(取值65535);

(2)设置dcw中所有与cw重合位置的距离值为0;

(3)设置dcw中的满足下列要求的位置距离值为1。要求:距离值为max,且与距离值为0的位置相邻;

(4)循环步骤(3),设置所有距离值为max且与距离值为i位置相邻的位置距离值为i+1;

以相同的方法求解像素到干扰线中心线cg的距离矩阵dcg。

去除干扰线的效果如图5所示。

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