框的左邊界并且其右邊緣不接觸邊界框的右邊界,則移除該垂直線。否則,保留該垂直線。因?yàn)樵谠S多情況下,文本字符的垂直筆劃具有與它們交叉的其它筆劃,所以在步驟S16中不移除這些垂直筆劃,而是移除不與其它線交叉的垂直線。
[0033]這使垂直線移除結(jié)束,處理繼續(xù)進(jìn)行水平線移除,步驟S21至S25 (圖3)。對(duì)在步驟S12中檢測(cè)到的每個(gè)水平線重復(fù)步驟S21至S25。
[0034]應(yīng)當(dāng)指出,垂直和水平線移除是彼此獨(dú)立的,并且這兩者的順序是不重要的。
[0035]因?yàn)樗骄€常常以文本下劃線的形式出現(xiàn)在文檔圖像中,并且這樣的下劃線常常與文本字符的部分交叉,所以水平線移除處理被設(shè)計(jì)為在斷開文本字符的情況下移除水平線。
[0036]首先,針對(duì)在步驟S12中識(shí)別的每個(gè)水平線,檢查其長寬比,如果該比率小于預(yù)定閾值,則跳過該線(即,它不是實(shí)際的水平線而不執(zhí)行其余的步驟S22至S25),并且處理繼續(xù)進(jìn)行到下一水平線(步驟S21)。更具體地,邊界框長度用作線長度,而水平線的所有水平位置處的最大筆劃寬度的中間值用作線寬度。水平線的水平位置處的最大筆劃寬度指的是與位于該水平位置處的屬于水平線的所有黑色像素相關(guān)聯(lián)的筆劃寬度的最大值??梢允褂妙愃朴诓襟ES151至S155的一組步驟(其中,垂直和水平交換,左和右變?yōu)樯虾拖?來計(jì)算水平位置處的最大筆劃寬度和所有水平位置處的最大筆劃寬度的中間值。在一個(gè)例子中,預(yù)定閾值是20,但是可以使用其它值,諸如10和30之間的值。
[0037]如果線將不被跳過,則對(duì)于沿著水平線的每個(gè)水平位置,計(jì)算水平線的以該水平位置為中心的一小段(邊界框中的小窗口)內(nèi)的最大筆劃寬度的局部中間值;如果該水平位置處的最大筆劃寬度小于小窗口的局部中間值,則移除水平線的在該水平位置處的黑色像素的列(步驟S22)。步驟S22利用已經(jīng)在步驟S21中計(jì)算出的每個(gè)水平位置處的最大筆劃寬度。對(duì)沿著水平線的所有水平位置重復(fù)步驟S22,即,使用移動(dòng)窗口。在該步驟之后,水平線的許多段將被移除,但是仍將余留許多段。
[0038]圖4A示出二值文檔圖像的一部分的例子,該部分是具有下劃線的一行文本。圖4B示出步驟S22的結(jié)果;可以看出,水平下劃線的大多數(shù)部分被移除,但是仍余留許多片段。
[0039]然后,提取至少部分位于水平線邊界框內(nèi)的連接成分,并移除既不在邊界框的頂邊界上方延伸預(yù)定量、也不在邊界框的底邊界下方延伸預(yù)定量的那些連接成分(步驟S23)。預(yù)定量可以例如是10個(gè)像素;可以使用其它量,例如,從5至20個(gè)像素。對(duì)于在步驟S22中未被移除的并且不在與文本字符筆劃的交點(diǎn)處的水平線的片段,連接成分將不會(huì)在邊界框的邊界上方或下方大幅延伸,因此將在步驟S23中被移除。另一方面,對(duì)于位于與字符筆劃的交點(diǎn)處的水平線的片段,連接成分將包括字符筆劃,因此將有可能在邊界框的邊界上方和/或下方大幅延伸;這些片段在步驟S23中將不被移除。
[0040]對(duì)于某些文本字符,以上水平線移除步驟仍將導(dǎo)致與下劃線交叉的部分的斷開。圖4C中示出了例子,在該例子中,字符“g”的底部部分?jǐn)嚅_。因此,將閉運(yùn)算應(yīng)用于從步驟S23得到的文檔圖像以將在連接成分之間具有足夠小的間隙的這些連接成分結(jié)合在一起(步驟S24)。閉是涉及使用相同結(jié)構(gòu)元素的先膨脹、再腐蝕的形態(tài)學(xué)運(yùn)算。閉運(yùn)算的效果是,保留背景(這里,白色)中的結(jié)構(gòu)元素可以放入的區(qū)域,并消除背景中的其它區(qū)域(例如,在該例子中的小間隙)。在步驟S24中,結(jié)構(gòu)元素優(yōu)選地是長度為例如20個(gè)像素的水平線;可以使用其它長度,諸如從10至30個(gè)像素。也可以使用其它合適的形狀。作為步驟S24的結(jié)果,多條斷開的字符筆劃被結(jié)合。該效果可以在圖4D中看到。
[0041]最后,在頂邊界和底邊界處略微擴(kuò)大水平線邊界框,例如每個(gè)擴(kuò)大5個(gè)像素,但是可以使用其它量,諸如從2至15個(gè)像素;移除邊界框內(nèi)部的既不接觸邊界框的頂邊界、也不接觸邊界框的底邊界的連接成分(步驟S25)。該步驟的效果是移除沒有被前面的步驟移除的水平線的片段。
[0042]這里所描述的水平和垂直線檢測(cè)和移除方法可以在諸如如圖4中所示的計(jì)算機(jī)120的數(shù)據(jù)處理系統(tǒng)中實(shí)現(xiàn)。計(jì)算機(jī)120包括處理器121、存儲(chǔ)裝置(例如,硬盤驅(qū)動(dòng)器)122以及內(nèi)部存儲(chǔ)器(例如,RAM) 123。存儲(chǔ)裝置122存儲(chǔ)軟件程序,該軟件程序被讀出到RAM123并被處理器121執(zhí)行以實(shí)現(xiàn)所述方法。
[0043]在一個(gè)方面,本發(fā)明是一種由數(shù)據(jù)處理系統(tǒng)執(zhí)行的方法。在另一方面,本發(fā)明是一種在計(jì)算機(jī)可用的非暫時(shí)性介質(zhì)中具體化的計(jì)算機(jī)裝置,所述計(jì)算機(jī)可用的非暫時(shí)性介質(zhì)具有嵌入在其中的用于控制數(shù)據(jù)處理設(shè)備執(zhí)行所述方法的計(jì)算機(jī)可讀程序代碼。在另一方面,本發(fā)明在數(shù)據(jù)處理系統(tǒng)中具體化。
[0044]本領(lǐng)域技術(shù)人員將清楚的是,在不脫離本發(fā)明的精神或范圍的情況下,可以在本發(fā)明的水平和垂直線檢測(cè)和移除方法以及相關(guān)設(shè)備中進(jìn)行各種修改和變化。因此,意圖是本發(fā)明覆蓋落在所附權(quán)利要求及其等同的范圍內(nèi)的修改和變化。
【主權(quán)項(xiàng)】
1.一種用于從二值文檔圖像移除水平線的方法,包括以下步驟: (a)獲得與二值圖像的每個(gè)像素相關(guān)聯(lián)的筆劃寬度,其中,與給定像素相關(guān)聯(lián)的筆劃寬度被定義為包括該像素的連續(xù)前景像素的水平游程長度和垂直游程長度中的較小者; (b)獲得表示檢測(cè)到的水平線的邊界框; (c)計(jì)算水平線的每個(gè)水平位置處的最大筆劃寬度,其中,給定水平位置處的最大筆劃寬度被定義為與位于該水平位置處的屬于水平線的所有前景像素相關(guān)聯(lián)的筆劃寬度的最大值; (d)針對(duì)位于沿著邊界框的水平位置處的每個(gè)前景像素列,如果該水平位置處的最大筆劃寬度小于邊界框的以該水平位置為中心的窗口內(nèi)的所有水平位置處的最大筆劃寬度的中間值,則將它們移除; (e)提取邊界框中的在步驟(d)之后余留的所有連接成分,并移除既不在邊界框的頂邊界上方延伸預(yù)定量、也不在邊界框的底邊界下方延伸預(yù)定量的任何連接成分;以及 (f)使用水平線作為結(jié)構(gòu)元素來對(duì)從步驟(e)得到的二值圖像執(zhí)行閉運(yùn)算。2.根據(jù)權(quán)利要求1所述的方法,其中,步驟(c)包括以下步驟: 將邊界框劃分為多個(gè)水平布置的窗口; 針對(duì)每個(gè)窗口: 通過水平地投影該窗口內(nèi)的圖像塊以產(chǎn)生直方圖并獲得該直方圖的峰位置作為該窗口內(nèi)的水平線段的垂直中心位置來獲得所述垂直中心位置; 在該窗口的每個(gè)水平位置處,識(shí)別與所述垂直中心位置處的前景像素連接的所有連續(xù)的前景像素;以及 計(jì)算與在識(shí)別步驟中識(shí)別的所有連續(xù)的前景像素相關(guān)聯(lián)的筆劃寬度中的最大一個(gè)。3.根據(jù)權(quán)利要求1或2所述的方法,還包括以下步驟: 在步驟(d)之前,確定邊界框中的水平線的長寬比, 其中,僅當(dāng)所述長寬比大于預(yù)定閾值時(shí),才執(zhí)行步驟(d)、(e)和(f)。4.根據(jù)權(quán)利要求3所述的方法,其中,確定步驟在步驟(c)之后執(zhí)行,并且其中,所述長寬比是邊界框的長度與水平線的所有水平位置處的最大筆劃寬度的中間值的比率。5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,在步驟(e)之后還包括以下步驟: 在頂邊界和底邊界