曾凡鋒,高艷云,付曉玲
(北方工業(yè)大學(xué) 信息工程學(xué)院,北京100144)
隨著圖像處理技術(shù)的發(fā)展,傳統(tǒng)的通過掃描儀采集信息的方式已經(jīng)越來越滿足不了人們的需求,而隨著現(xiàn)代數(shù)碼產(chǎn)品越來越廣泛的應(yīng)用,通過拍照采集信息的方式得到了很大程度上的應(yīng)用,尤其是在印刷文字識別方面。雖然拍照方式采集圖像方便快捷,但是在應(yīng)用中仍然存在一些問題,例如拍照獲得的文本圖像可能由于外界不確定因素存在一些光照不均的現(xiàn)象等,這些將影響后續(xù)對文字的識別效果。通常的處理方法是先對圖像進行二值化,但是二值化后的圖像可能殘留噪聲,這就需要對二值化圖像進行去噪處理。目前常用的圖像去噪算法有中值濾波、均值濾波、小波變換和數(shù)學(xué)形態(tài)學(xué)濾波等,但這些方法只是對一般圖像的去噪處理,針對性不強,對于文本圖像的去噪效率不高,效果不是很好。本文在原有算法的基礎(chǔ)上,主要分析了文本圖像特有的結(jié)構(gòu)特征和噪聲特征,提出了一種基于文本圖像的投影結(jié)合分塊形態(tài)學(xué)的快速去噪方法,首先對輸入的二值化文本圖像進行投影,通過分析投影結(jié)果去除行列間噪聲,然后對圖像分塊統(tǒng)計噪聲的數(shù)量,通過閾值對分塊的圖像進行快速去噪。該方法對于通過拍照方式獲得的文本圖像由于光照不均而產(chǎn)生的一些噪聲的處理比傳統(tǒng)的濾波等方法的效果更好,速度更快,為后續(xù)的文字識別和注視放大提供了良好的條件。
(1)文本主要有橫排,豎排及橫豎混排3種版面。橫排版的文本是從上往下、從左向右排版;豎排版文本是從右向左、從上向下排版。
(2)文本正文中的文字字型字號相同。
(3)文本正文中的文字行、列間隔相等。
(4)文本行間和列間不會再出現(xiàn)字符。
如圖1所示為排版結(jié)構(gòu),第一幅為橫排文本,第二幅為豎排文本,第三幅為橫豎混排文本。
圖1 文本圖像結(jié)構(gòu)特征
由于光照不均產(chǎn)生的文本圖像的噪聲通常出現(xiàn)在文本的行間和列間或者在字符的邊緣,噪聲形態(tài)通常是點狀或是小型塊狀噪聲(光照嚴重不均情況除外),如圖2所示為一種橫排版面的文本圖像二值化后的效果圖??梢钥闯鲇捎诠庹詹痪鶗斐刹糠謭D像的噪聲分布比較集中并且多,而部分圖像的噪聲很少或者是幾乎沒有。噪聲的分布主要是點狀的和小型的塊狀噪聲。
圖2 二值化后圖像的噪聲分布情況局部放大
首先對文本圖像進行二值化,根據(jù)文本圖像的結(jié)構(gòu)特征及噪聲特征,對二值化后的圖像通過投影確定文本結(jié)構(gòu),并快速去除行間和列間的噪聲,字符內(nèi)去噪采取分塊局部閾值方法,并采用形態(tài)學(xué)濾波法去噪。算法流程如圖3所示。
圖3 整體算法流程
本文中提到的行(列)間去噪是相對于排版不同的文本而言的,即通過投影分析其投影結(jié)果中脈沖的周期性,如果行投影的結(jié)構(gòu)脈沖有一定得周期性則為橫排文本,反之則為豎排文本,判斷了文本的結(jié)構(gòu)特征之后接著可以運用投影結(jié)果對文本進行行間去噪,因為橫排文本的排版是從上到下,從左到右的,文本是按行排版的,而對于豎排文本則應(yīng)該先進行列間去噪,因為豎排文本的排版是從右到左,從上到下,文本是按列排版的。首先應(yīng)該對文本圖像進行投影,由于文本圖像的正文中的文字行間和列間一般都是等距的,同一圖像中正文的文字大小是相等的,所以可以對投影結(jié)果進行分析,根據(jù)其脈沖的周期性,判斷文本圖像的行間距和列間距,選取投影結(jié)果中相鄰的兩個脈沖,其中一個脈沖的起始點和終止點的差值就是行高即字符的高度,選擇得到的字符高度的數(shù)據(jù)中出現(xiàn)次數(shù)最多的作為文本圖像中的字符高度。由于根據(jù)經(jīng)驗值一行內(nèi)如果只有一個字符時黑像素點為20左右,所以可以以20作為閾值,大于這個閾值的就認為這一行內(nèi)有字符,而小于這個閾值的則認為這行內(nèi)存在的是噪聲,將這一行的所有點的像素置為255即對這行整體去噪。如圖4所示為行(列)間去噪的流程圖。
圖4 行(列)間去噪流程
通過前一步的行(列)間去噪之后,對于橫排文本的圖像,可以去除字符間的噪聲即每一行文本中的列間噪聲,因為圖像中的文字有可能不是每一行都是對齊的,所以應(yīng)該對每一行進行操作,根據(jù)每一行中列的周期性確定一個字符的寬度,由于每一個字符的寬度一般都是相等的,所以可以對任意一行進行列投影,投影結(jié)果中選取相鄰的兩個脈沖,其中前一個脈沖的終止點和后一個脈沖的起始點的間隔就是這個列間距即字符的寬度,然后選取這一行中得到列間距中出現(xiàn)次數(shù)最多的數(shù)作為整篇文本的字符間距。因為根據(jù)經(jīng)驗值一個逗號的黑像素點為3,所以可以選取3作為閾值,大于這個閾值的就認為這一列是字符,而小于這個閾值的則認為這列是噪聲,將這一列的所有點的像素置為255即對這列整體去噪。如圖5所示為字符間去噪的流程圖。
圖5 字符間去噪流程
由于上述兩步的去噪方法類似,如圖6所示為經(jīng)過上述兩步去噪之后的效果圖,可以看出經(jīng)過行間和字符間的去噪,出現(xiàn)在字符間和行間的噪聲點已經(jīng)基本去除。其中最為明顯的是“豪”字上方出現(xiàn)的塊狀的噪聲在經(jīng)過行間和字符間去噪后已經(jīng)不存在了。
圖6 行列間去噪前后局部放大對比
由于一些文本圖像的光照不均會造成一部分圖像的噪聲點多而部分圖像的噪聲點很少,噪聲點少的部分對后續(xù)的識別和放大的效果影響不大可以直接進行輸出,而噪聲點多的部分還需要進一步去噪。為此對圖像進行分塊去噪,圖像分塊的流程如圖7所示。
圖7 圖像分塊的流程
首先將圖像分成3*3或者是5*5塊,對每塊內(nèi)的圖像進行分析,即分析統(tǒng)計每塊內(nèi)行列間的噪聲點數(shù),由于在統(tǒng)計出的行列間噪聲點數(shù)的數(shù)組中肯定會存在一些特別小的數(shù)和一些特別大的數(shù),其中特別大的數(shù)肯定是噪聲點多的部分需要去噪,而特別小的肯定是不需要去噪的,這時就需要確定一個閾值,確定這個閾值時先將前面得到的噪聲點數(shù)的數(shù)組排序,選擇數(shù)組中相鄰兩個元素中差值最大的兩個數(shù)的中值作為閾值,大于這個閾值的圖像進行下一步的塊內(nèi)字符去噪,小于這個閾值圖像的直接進行輸出。
對于前面統(tǒng)計的需要進行塊內(nèi)字符去噪的圖像采用形態(tài)學(xué)算法進行去噪。運用形態(tài)學(xué)運算去掉一些偏離的噪聲,吸收一些近距離的噪聲點,以達到去噪效果。因為形態(tài)學(xué)算法比中值濾波速度快,并且比鄰域法等去噪算法效果明顯。所以在塊內(nèi)選擇形態(tài)學(xué)算法進行去噪。
2.5.1 形態(tài)學(xué)去噪算法
形態(tài)學(xué)運算包括腐蝕、膨脹、開和閉運算,其中最基本的腐蝕和膨脹。
形態(tài)學(xué)腐蝕如下所示
式中:S——腐蝕后的二值圖像集合,B——進行腐蝕的結(jié)構(gòu)元素,X——原圖像經(jīng)過二值化后的像素集合,此公式是用結(jié)構(gòu)元素B來腐蝕X得到集合S。
形態(tài)學(xué)膨脹如下所示
式中:S——膨脹后的二值圖像集合,B——進行膨脹的結(jié)構(gòu)元素,X——原圖像經(jīng)過二值化后的像素集合,此公式是用B來膨脹X得到集合S。
形態(tài)學(xué)開運算是運用數(shù)學(xué)腐蝕和膨脹相結(jié)合的一種算法,如下所示
其中結(jié)構(gòu)元素B對集合A進行運算,即B對A先腐蝕后膨脹。
形態(tài)學(xué)閉運算是運用數(shù)學(xué)腐蝕和膨脹相結(jié)合的一種算法,如下所示
其中結(jié)構(gòu)元素B對集合A進行運算,即B對A先膨脹后腐蝕。
數(shù)學(xué)形態(tài)學(xué)腐蝕可以消除圖像的邊界噪聲,使邊界向內(nèi)收縮,而膨脹是對圖像邊界點得擴充,使部分背景點合并到圖像中,使圖像的邊界向外擴張。開運算和閉運算是將腐蝕和膨脹相結(jié)合的算法,開運算不僅可以使圖像的輪廓變的光滑,還可以斷開狹窄的間斷和消除細的突出物,閉運算可以使輪廓線更光滑,消除狹窄的間斷和長細的鴻溝,消除小孔并填補輪廓線中的斷裂。對于文本圖像可以去除字符間的孤立點并且可以保持字符的大小。所以對于文本圖像的去噪采用形態(tài)學(xué)方法比其它的傳統(tǒng)去噪算法效果會好。
2.5.2 傳統(tǒng)的中值濾波算法
值濾中波器的基本原理是把數(shù)字圖像或數(shù)字序列中一點的值用該點的一個鄰域中各點值的中值代替,讓周圍像素灰度值的差比較大的像素改取與周圍的像素值接近的值,從而可以消除孤立的噪聲點。
中值濾波算法如下所示
式中:X(n-N)…X(n)…X(n+N)——定義窗口內(nèi)的作用樣本,med[]——對一個滑動窗口內(nèi)的像素由大到小排序完之后取中值的運算。
中值濾波算法中最重要的操作就是對中值的計算,而中值的計算主要又是對窗口內(nèi)像素的排序操作。排序的重要步驟是對像素做比較和交換,數(shù)據(jù)元素之間的比較次數(shù)是影響排序的重要因素。用冒泡排序的話,其時間復(fù)雜度為O(m2),所以中值濾波的時間耗費會比較大。
綜上所述,在塊內(nèi)選擇一種符合文本圖像結(jié)構(gòu)特征和噪聲特征的去噪算法,形態(tài)學(xué)去噪速度會比較快而且效果會比較好。而傳統(tǒng)的中值濾波算法運用在全局的時候速度已經(jīng)不快,如果運用在塊內(nèi)的話速度不會比運用數(shù)學(xué)形態(tài)學(xué)算法快。并且傳統(tǒng)的中值濾波算法對孤立的噪聲點效果會比較好,而對于塊狀的噪聲效果不太明顯。
如圖8所示為一幅文本圖像在去噪前和應(yīng)用本文算法以及傳統(tǒng)的全局算法效果比較放大圖,其中圖8(a)為去噪前的文本圖像,圖8(b)所示為經(jīng)過投影結(jié)合分塊形態(tài)學(xué)去噪后的圖像,而圖8(c)所示為經(jīng)過全局形態(tài)學(xué)去噪的效果圖,圖8(d)為經(jīng)過全局中值濾波去噪的效果圖,從圖中可以看出,全局形態(tài)學(xué)去噪和全局中值濾波去噪對光照不均的圖像整體去噪使一部分原本噪聲很少的圖像失真很嚴重,對后續(xù)的識別和放大效果影響很大,就如圖8(c)和圖8(d)所示的圖像中最后兩行文字在經(jīng)過去噪處理后也被當(dāng)作噪聲去掉一部分了,其局部放大之后會發(fā)現(xiàn)很多字符出現(xiàn)嚴重的斷筆現(xiàn)象使的后續(xù)的識別和助視放大效果很差,而運用分塊的去噪算法,只對噪聲點多的部分圖像進行去噪,對噪聲點少的部分圖像則不進行操作直接輸出,這樣噪聲點少的部分會將原圖直接輸出對后續(xù)的圖像識別和助視放大不會造成影響。
測試條件:利用攝像頭外加輔助光造成文本圖像的光照不均來采集圖像,將采集到的圖像保存在本地機上,運用前面的算法對其進行去噪。
測試環(huán)境:Windows XP,Visual C++6.0
對于以5號字組成的A4紙全文的文本圖像,算法效率見表1。
表1 算法比較
圖8 圖像去噪前和應(yīng)用本文算法及傳統(tǒng)算法效果比較
通過前面圖所示及測試結(jié)果可以看出,全局形態(tài)學(xué)的去噪算法雖然在速度方面會比較快,但是運用這個算法得出的效果圖中有很多噪聲點比較少的圖像的失真嚴重,會有部分圖像中的字符被當(dāng)作噪聲去掉而對后續(xù)的操作產(chǎn)生很多不利的因素,影響識別和助視放大的效果,而全局中值濾波采用5*5窗口濾波算法,得到的結(jié)果不僅出現(xiàn)形態(tài)學(xué)所示的現(xiàn)象并且速度也不快,但是,運用投影法結(jié)合分塊去噪的快速去噪方法對大多數(shù)光照不均的文本圖像去噪有較好效果。比傳統(tǒng)的全局去噪算法效率更高,效果更好。
本文提出的基于文本圖像的快速去噪方法,根據(jù)文本圖像的結(jié)構(gòu)及噪聲特征,采用投影結(jié)合分塊形態(tài)學(xué)方法提高去噪效果和速度。對大多數(shù)光照不均的文本圖像去噪有較好效果。可用于文字識別前的圖像預(yù)處理或印刷文字的助視放大。
針對傳統(tǒng)去噪算法的普遍性而沒有特定針對性的特別,分析文本圖像所區(qū)別與一般圖像的結(jié)構(gòu)特征和噪聲特征,提出一種投影法結(jié)合分塊形態(tài)學(xué)方法的快速去噪算法,通過測試和分析,達到了一定的效果,較傳統(tǒng)的全局去噪算法效率更高,效果更好,但是,這個算法主要針對的是正常情況下光照不均的文本圖像的去噪,對于一些光照嚴重不均,比如在二值化后會出現(xiàn)大面積黑色區(qū)域并且大面積噪聲中夾雜文字的圖像這種去噪算法效果會和傳統(tǒng)的去噪算法的效果差不多,不太有明顯的優(yōu)勢。
[1]YANG Bo,QI Fei-h(huán)u,HAO Jun-sheng.A new approach for marginal noise removal of binary document image[J].Computer Engineering,2006,32(5):186-188(in Chinese).[楊博,戚飛虎,郝峻晟.一種去除二值文本圖像邊緣噪聲的新方法[J].計算機工程,2006,32(5):186-188.]
[2]ZHANG Yuan,CAI Li-dong.A method of salt-pepper denoising for text images[J].Journal of Changchun University of Science and Technology(Natural Science Edition),2010,33(2):129-132(in Chinese).[張媛,蔡利棟.一種去除文本圖像椒鹽噪聲的方法[J].長春理工大學(xué)學(xué)報(自然科學(xué)版),2010,33(2):129-132.]
[3]TIAN Da-zeng,HAO Yong,HA Ming-h(huán)u.New algor ithm for r emoval of salt-pepper noises of visual text images[J].Computer Engineering and Applications,2007,43(14):81-83(in Chinese).[田大增,郝永,哈明虎.一種新的去除視覺文本圖像椒鹽噪聲的算法[J].計算機工程與應(yīng)用,2007,43(14):81-83.]
[4]YANG Shu-ying.VC+ + image processing program design[M].2nd ed.Beijijng:Tsinghua University Press,2005(in Chinese).[楊淑瑩.VC++圖像處理程序設(shè)計[M].2版.北京:清華大學(xué)出版社,2005.]
[5]YANG Xiao-gang,MENG Fei,LI Jun-shan.Practical image filtering algorithm[J].Journal of Computer Applications,2009,29(6):216-218(in Chinese).[楊小岡,孟飛,李俊山.一種實用的圖像濾波算法[J].計算機應(yīng)用,2009,29(6):216-218.]
[6]LIU Guo-h(huán)ong,GUO Wen-ming.Application of improved arithmetic of median filtering denoising[J].Computer Engineering and Applications,2010,46(10):187-189(in Chinese).[劉國宏,郭文明.改進的中值濾波去噪算法應(yīng)用分析[J].計算機工程與應(yīng)用,2010,46(10):187-189.]
[7]LI Yan-jun,SU Hong-qi,YANG Feng,et al.Improved algorithm study about removing image noise[J].Computer Engineering and Design,2009,30(12):2995-2996.[李彥軍,蘇紅旗,楊峰,et al.改進的中值濾波圖像去噪方法研究[J].計算機工程與設(shè)計,2009,30(12):2995-2996.]
[8]WANG Xiao-kai,LI Feng.Improved adaptive median filtering[J].Computer Engineering and Applications,2010,46(3):175-176(in Chinese).[王曉凱,李鋒.改進的自適應(yīng)中值濾波[J].計算機工程與應(yīng)用,2010,46(3):175-176.]
[9]ZHANG Yong,CHEN Da-jian,SUN Zhi-jun.Comparing of two improved median filtering algorithms[J].Electro-Optic Technology Application,2010,25(1):67-70(in Chinese).[張勇,陳大建,孫志軍.兩種改進型中值濾波算法比較[J].光電技術(shù)應(yīng)用,2010,25(1):67-70.]
[10]Kazuya Matsushita,Hitoshi Kitazawa.An improved camera identification method based on the texture complexity and the image restoration[C].Daejeon,Korea:International Conference on Convergence and Hybrid Information Technology,2009.