本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
摘 要: 在分析文本行特点的基础上,提出了一种利用水平梯度差进行文档图像的文本行检测算法。该算法首先对输入的文档图像进行水平梯度差计算,然后在局部窗口中求解最大梯度差并进行文本行区域的合并,通过非文本区域过滤来消除字符阶跃的跳变,最后将文档图像以行块的形式进行显示。实验结果表明,与投影算法进行相比,该算法对于行间距较小的文档图像的检测效果较好,时间复杂度较低并且检测的正确率较高,具有一定的鲁棒性和较好的适应性。
关键词: 梯度差; 文本行检测; 局部窗口; 投影算法
目前大多数文档图像的信息以数字化形式存在,并以文档形式存储在数据库中。文档图像处理是办公自动化的一个重要组成部分,在办公自动化、数字图书馆、图像视频检索等领域得到越来越广泛的应用[1]。其内容主要包括扫描输入、预处理、布局分析、字符识别等步骤,其中,文本行检测是进行布局分析、检索以及字符识别的重要组成部分。目前主要采用三种方法来进行文本定位:基于区域的方法、基于边缘的方法和基于纹理的方法[1]。基于区域的方法利用连通区域进行投影分析来获取文本区域, 投影特性法[2]主要是对文档图像在指定方向上进行投影测试,根据投影的分布特征,在得到的结果中选取最佳的投影结果,以完成文本行的检测。但由于传统投影方法需要对整个图像进行指定方向上的投影,其计算量和复杂度都较高[3]。基于边缘的方法利用了图像中的文本与背景之间有较高对比度这一特性来进行定位。Chen Datong 等人[4]利用Canny算法提取图像边缘,并用形态学膨胀的方法将边缘连接成块,再利用基线定位完成文本行检测,但时间复杂度较高,当背景边缘较为复杂时,这类算法处理起来较为困难。基于纹理的方法利用文本具有的较强的纹理特征来区分背景,Mao Wenge等人[5]利用小波变换检测图像纹理,再通过图像的纹理分析定位出文本。该方法通常具有较高的鲁棒性,但计算量大,复杂度较高,且文本定位不是很精确。
本文在总结上述算法特点的基础上,提出了一种基于梯度差的文本行检测算法,该算法利用了文档图像文本行特征,在水平方向上进行梯度差计算,然后进行文本行区域的合并和非文本区域的过滤,减少了文字粗细和图像分辨率的干扰,提高了检测的速度和精度。
1 文本行特点分析
文档图像文本行的特殊性主要表现在以下几个方面:
(1)大部分的文字边缘均突出,可以利用边缘信息进行文本检测,尤其是中文在水平和垂直方向上边缘均比较突出。边缘与梯度之间存在很大的关联,梯度的方向在数学中表示为某函数变化率最大的方向,在文档图像中梯度往往反映了图像边缘清晰度[6],对于梯度较大的区域可表示为可能的文本区域。
(2)对于印刷体文档图像中的文本,同一行中文字的字符间距相同,间距与字符之间满足一定的比例关系,如字符间距大于字符宽度的1/5而小于字符宽度的两倍。在进行文本区扩展不同的字符区域使之成为一个有效的文本块时,非文本区域往往不具备该特征。对于手写体文档图像,字符间距不同,比印刷体文档图像复杂,但可以利用文本区域扩展特征进行文本行检测。
(3)文本行具有直线特征,有很强的方向性,可根据该特征进行文本行标记与定位,此外该特征还可用于倾斜校正和版面分析等。
文本梯度的信息不同于非文本区域的梯度,主要是由于一般文字和背景之间有很高的对比度。由于正负梯度值之差在文字区域较大,因此,本文利用梯度差方法进行文本行检测。
2 文本行检测算法
文本行检测算法没有进行文档图像的预处理过程,一定程度上减少了检测时间,如果输入的图像为真彩图像,首先进行灰度转化[7],这比单独对彩色图像的每个通道进行处理效率要高。
2.1 最大梯度差计算
字符图像往往具有较强的边缘信息,在字符边缘地带,相邻像素的灰度值变化剧烈,对应梯度幅度值较大。此外,文字行区域具有直线特点。因此,本文根据字符图像的特殊性,采用水平梯度差进行文本行区域的合并。其算法如下:
2.2 文本行块标记
通常情况下,文档图像中的字符会存在字符高低不平的情况,为获取较为规则的文本行块,需进行消除字符阶跃的跳变。本文利用非文本过滤的基本思想,判断一个可能的文本区像素点两边是否满足非文本过滤的要求。主要方法是设定局部窗口,然后沿水平方向滑动,判断窗口内的像素是否全部为黑色像素(像素值为0),若满足,则停止计算,认为该区域为文本行区域, 否则将窗口的像素值置为1。通过文本行定位可有效地消除字符间高低不平的情况,根据实际应用的需要,可再次进行非文本区域过滤操作,图1所示为输入的英文手写体文档图像,图2所示为文本行经过非文本区域过滤后得到的文本行检测效果。
3 实验结果及分析
选择若干幅尺寸相同但字体不一的纯文字文档图像进行实验,实验环境为Windows XP操作系统,Pentium(R)1.7 G CPU,512 MB内存,用Matlab7.0 仿真实现了文档图像的文本行检测。
经实验得到的阈值为77.5,为方便起见,本文选取80作为梯度图像的文本行检测阈值。在不同的局部窗口下对图1进行文本行检测,结果如图3所示。当局部窗口w取13时,行内会存在断点;当w取19时,看到行与行之间会有融合,二者效果都不理想;在w取得15时,效果较好。
|