文本圖像中文本行的定位方法
【專利摘要】本發(fā)明公開了一種文本圖像中文本行定位的方法。其中,所述方法包括:通過(guò)圖像灰度矩陣計(jì)算所述文本圖像局部對(duì)比度矩陣;將所述局部對(duì)比度矩陣使用最大熵分割法進(jìn)行二值劃分,得到二值圖像;對(duì)所述二值圖像進(jìn)行連通域的提取、合并和刪除操作,獲取字符連通域;對(duì)提取的字符連通域,依據(jù)其左側(cè)水平坐標(biāo)的大小進(jìn)行排序;對(duì)排序后的字符連通域,進(jìn)行文本行的定位工作,獲取所有文本行的起始列和結(jié)束列信息;依據(jù)所述文本行的起始列和結(jié)束列信息及其包含的字符個(gè)數(shù),對(duì)其進(jìn)行刪除和排序工作,從而實(shí)現(xiàn)所述文本行的定位。通過(guò)本發(fā)明實(shí)現(xiàn)了文本圖像在光照不均、對(duì)比度低等復(fù)雜情況下有效的文本行的定位工作。
【專利說(shuō)明】
文本圖像中文本行的定位方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及圖像處理中光學(xué)字符識(shí)別技術(shù)領(lǐng)域,特別是涉及一種文本圖像中文本 行的定位方法。
【背景技術(shù)】
[0002] 文本圖像的0CR(0ptical Character Recognition,光學(xué)字符識(shí)別)技術(shù)是圖像處 理領(lǐng)域中的一個(gè)重要分支,有著廣泛的應(yīng)用。OCR的基本原理是利用各種模式識(shí)別算法分析 文字形態(tài)特征,判斷出漢字的標(biāo)準(zhǔn)編碼,并存儲(chǔ)在文本文件中。將文本圖像里的文字進(jìn)行提 取和識(shí)別,對(duì)于文本圖像內(nèi)容的分析和理解有著重要的意義。其中,從文本圖像中定位出文 本行的意義重大。
[0003] 有鑒于此,特提出本發(fā)明。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種文本圖像中文本行的定位方法,以解決如何有效地定位出文本圖 像中的文本行的技術(shù)問(wèn)題。
[0005] 為了實(shí)現(xiàn)上述目的,提供以下技術(shù)方案:
[0006] -種文本圖像中文本行定位的方法,其特征在于,所述方法包括:
[0007] 通過(guò)圖像灰度矩陣計(jì)算所述文本圖像局部對(duì)比度矩陣;
[0008] 將所述局部對(duì)比度矩陣使用最大熵分割法進(jìn)行二值劃分,得到二值圖像;
[0009]對(duì)所述二值圖像進(jìn)行連通域的提取、合并和刪除操作,獲取字符連通域;
[0010]對(duì)提取的字符連通域,依據(jù)其左側(cè)水平坐標(biāo)的大小進(jìn)行排序;
[0011]對(duì)排序后的字符連通域,進(jìn)行文本行的定位工作,獲取所有文本行的起始列和結(jié) 束列信息;
[0012] 依據(jù)所述文本行的起始列和結(jié)束列信息及其包含的字符個(gè)數(shù),對(duì)其進(jìn)行刪除和排 序工作,從而實(shí)現(xiàn)所述文本行的定位。
[0013] 本發(fā)明通過(guò)采用上述技術(shù)方案,利用文本圖像的二值化技術(shù),連通域分析技術(shù),實(shí) 現(xiàn)了文本圖像在光照不均、對(duì)比度低等復(fù)雜情況下有效的文本行的定位工作。本發(fā)明的方 法是一種無(wú)參數(shù)的快速算法,可用在大規(guī)模文本圖像OCR的批量處理中,也可用于在線實(shí)時(shí) OCR處理系統(tǒng)中。
【附圖說(shuō)明】
[0014] 圖1為根據(jù)本發(fā)明實(shí)施例的文本圖像中文本行的定位方法的流程示意圖;
[0015] 圖2a為根據(jù)本發(fā)明一實(shí)施例的依據(jù)字符連通域進(jìn)行文本行定位的示意圖;
[0016] 圖2b為根據(jù)本發(fā)明另一實(shí)施例的依據(jù)字符連通域進(jìn)行文本行定位的示意圖;
[0017] 圖2c為根據(jù)本發(fā)明再一實(shí)施例的依據(jù)字符連通域進(jìn)行文本行定位的示意圖;
[0018] 圖2d為根據(jù)本發(fā)明又一實(shí)施例的依據(jù)字符連通域進(jìn)行文本行定位的示意圖;
[0019] 圖2e為根據(jù)本發(fā)明又一實(shí)施例的依據(jù)字符連通域進(jìn)行文本行定位的示意圖。
【具體實(shí)施方式】
[0020] 下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例提供的文本圖像中文本行的定位方法進(jìn)行詳細(xì)描 述。
[0021] 圖1為本發(fā)明實(shí)施例提供的文本圖像中文本行的定位方法的流程圖。如圖1所示, 該方法包括步驟SlOl至步驟S106。
[0022]步驟S101:通過(guò)圖像灰度矩陣計(jì)算文本圖像局部對(duì)比度矩陣。
[0023]步驟S102:將局部對(duì)比度矩陣使用最大熵分割法進(jìn)行二值劃分,得到二值圖像。 [0024]步驟S103:對(duì)二值圖像進(jìn)行連通域的提取、合并和刪除操作,獲取字符連通域。 [0025]步驟S104:對(duì)提取的字符連通域,依據(jù)其左側(cè)水平坐標(biāo)的大小進(jìn)行排序。
[0026] 步驟S105:對(duì)排序后的字符連通域,進(jìn)行文本行的定位工作,獲取所有文本行的起 始列和結(jié)束列信息。
[0027] 步驟S106:依據(jù)文本行的起始列和結(jié)束列信息及其包含的字符個(gè)數(shù),對(duì)其進(jìn)行刪 除和排序工作,從而實(shí)現(xiàn)文本行的定位。
[0028]本發(fā)明實(shí)施例通過(guò)將文本圖像進(jìn)行二值化處理,然后采用連通域分析技術(shù),對(duì)二 值圖像進(jìn)行連通域的提取、合并和刪除操作,獲取字符連通域。再基于字符連通域獲取所有 文本行的起始列和結(jié)束列信息。最后,依據(jù)所述文本行的起始列和結(jié)束列信息及其包含的 字符個(gè)數(shù),對(duì)其進(jìn)行刪除和排序工作,從而實(shí)現(xiàn)所述文本行的定位。由此,本發(fā)明實(shí)施例實(shí) 現(xiàn)了有效地定位出文本圖像中的文本行的技術(shù)效果。
[0029] 優(yōu)選地,在計(jì)算文本圖像局部對(duì)比度矩陣時(shí),根據(jù)以下公式計(jì)算文本圖像局部對(duì) 比度數(shù)值:
[0030]
[0031]
[0032]其中,I (i,j)表示位置(i,j)處的灰度值,Imax( i,j)和Imin( i,j)分別表示以(i,j) 為中心的局部鄰域內(nèi)的最大和最小灰度值,ae (〇,1),其為可調(diào)參數(shù),ε為無(wú)窮小量,其用于 防止分母為〇,Con(i,j)表示(i,j)處的局部對(duì)比度數(shù)值。
[0033] 在實(shí)際實(shí)施過(guò)程中,需要確定局部濾波窗口寬度的大小,例如可以設(shè)置局部濾波 窗口寬度為3。
[0034] 局部對(duì)比度的計(jì)算公式中,a的計(jì)算方式為:
[0035]
[0036]
[0037] 在上述實(shí)施例中,在使用最大熵對(duì)局部對(duì)比度矩陣進(jìn)行二值劃分時(shí),首先選取某 個(gè)閾值k,根據(jù)該閾值把局部對(duì)比度的數(shù)值分為兩個(gè)部分,分別計(jì)算出這兩個(gè)部分的概率密 度函數(shù)口(1|?〇4 = 1,2,分別統(tǒng)計(jì)兩個(gè)部分的概率分布直方圖口(1|〇1)和口(1|(〇2),進(jìn)而 求得這兩部分熵之和(其定義為目標(biāo)函數(shù)),即:
[0038]
[0039] 其中,i取1和2。
[0040] 根據(jù)最大熵原理,認(rèn)為H(p I ω i)最大時(shí)對(duì)應(yīng)的閾值點(diǎn)k為最優(yōu)閾值,即閾值的選取 方式為
[0041]
[0042]上述二值矩陣中,1表示字符點(diǎn),0表示背景點(diǎn)。
[0043] 對(duì)二值圖像進(jìn)行連通域的提取、合并和刪除操作,獲取字符連通域具體可以包括: 對(duì)二值圖像進(jìn)行連通域的分析,提取文本圖像的連通域;刪除不符合預(yù)定尺寸要求的連通 域;將重疊區(qū)域比例較大的二連通域,合并成一連通域。
[0044] 具體地,對(duì)二值矩陣中的字符點(diǎn)進(jìn)行連通域分析,例如以8個(gè)像素點(diǎn)的鄰域表示連 通域,記錄二值矩陣中每個(gè)連通域的信息[cc_right_col,cc_lef t_col,cc_up_row,cc_ down_row, cc_pixel_num],其cc_left_col和cc_right_col分別表不連通域最小外包矩形 的左、右邊界的橫坐標(biāo),c c_up_r ow和c c_down_r ow分別表示連通域最小外包矩形的上、下邊 界的縱坐標(biāo),cc_p i xe l_num表示連通域中包含的字符點(diǎn)的個(gè)數(shù);對(duì)不符合尺寸的連通域進(jìn) 行刪除,以此來(lái)消除噪聲點(diǎn)和非字符連通域的影響;對(duì)重疊區(qū)域比例較大的兩個(gè)連通域,合 并成一個(gè)連通域。上述方法過(guò)濾后剩余的連通域被認(rèn)為是字符連通域。
[0045] 得到字符連通域之后,對(duì)字符連通域進(jìn)行遍歷,針對(duì)每一字符連通域執(zhí)行以下操 作中的至少之一,以確定文本行的起始列和結(jié)束列:
[0046] 若字符連通域中的字符的text_up_row和text_down_row所確定的區(qū)域和當(dāng)前存 在的行沒(méi)有重疊,貝1J倉(cāng)Il建一行,并將該行的信息設(shè)置為:line_up_row = text_up_row, line_ down_row = text_down_row ;
[0047] 若字符的text_up_row和text_down_row所確定的區(qū)域和當(dāng)前存在的某一行有重 疊,貝1J認(rèn)為所述字符屬于該行,并更新該行的信息:line_up_row=min(text_up_row,line_ up_row), line_down_row=max( text_down_row, line_down_row);
[0048] 若字符的text_up_row和text_down_row所確定的區(qū)域包含在某一行的區(qū)域內(nèi),則 所述字符屬于該行,且不更新行的坐標(biāo)信息;
[0049] 若字符的text_up_row和text_down_row所確定的區(qū)域與某兩行都存在重疊區(qū)域, 則把該字符放到重疊區(qū)域較多的一行中,并對(duì)該行進(jìn)行信息更新;
[0050] 其中,line_up_row和line_down_row分別表示文本行的起始列和文本行的結(jié)束 列;text_up_row和text_down_row分別表示連通域最小外包矩形的起始行坐標(biāo)和最小外包 矩形的結(jié)束行坐標(biāo)。
[0051 ]由于每一個(gè)字符連通域包含信息[text_up_row,text_down_row,text_lef t_col, text_right_col],其中:text_up_row和text_down_row分別表示該連通域最小外包矩形的 起始行坐標(biāo)和最小外包矩形的結(jié)束行坐標(biāo),text_left_col和text_right_col分別表示該 連通域最小外包矩形的起始列坐標(biāo)和最小外包矩形的結(jié)束列坐標(biāo);所以,本發(fā)明實(shí)施例根 據(jù)字符連通域的信息來(lái)進(jìn)行文本行的定位。
[0052] 根據(jù)以下過(guò)濾準(zhǔn)則對(duì)字符連通域進(jìn)行過(guò)濾:
[0053] (a)cc_down_row-cc_up_row〈5 并且 cc_right_col_cc_left_col〈5 ;
[0054] (b)cc_down_row-cc_up_row>50|i!ccc_right_col-cc_left_col>50 ;
[0055] (c)cc_pixel_num<10〇
[0056] 如果連通域滿足(a)、(b)、(c)中任意一個(gè)條件,則進(jìn)行刪除,剩余的連通域作為字 符連通域,每個(gè)字符連通域包含的信息為[text_up_row, text_down_row, text_left_col, text_right_col];依據(jù)字符連通域的左邊界的橫坐標(biāo)(left_col)進(jìn)行從小到大的排序。 [0057]然后,依據(jù)字符連通域進(jìn)行文本行的定位,具體的方式為:
[0058] 對(duì)字符連通域進(jìn)行遍歷,將字符連通域所占用的縱坐標(biāo)的區(qū)域[teXt_Up_r0W, text_down_row]與每一個(gè)行所占用的縱坐標(biāo)的區(qū)域[I ine_up_row,I ine_down_row]進(jìn)行對(duì) 比,若沒(méi)有重疊(如圖2a、圖2e所示),則新創(chuàng)建一個(gè)行,并設(shè)置[line_up_row = text_up_ row, line_down_row = text_down_row];
[0059] 若字符連通域所占用的縱坐標(biāo)的區(qū)域與某一行所占用的縱坐標(biāo)區(qū)域有重合(如圖 2b、圖2d所示),則將當(dāng)前字符歸結(jié)到當(dāng)前行中,并更新該行的信息,更新方式為:
[0060] [ line_up_row = min(text_up_row, line_up_row), line_down_row=max( text_ down_row,line_down_row)];
[0061] 若字符連通域所占用的縱坐標(biāo)的區(qū)域與某一行所占用的縱坐標(biāo)區(qū)域不僅重合,且 前者被后者所包含,如圖2c所示,則將當(dāng)前字符歸結(jié)到當(dāng)前行中,行信息不進(jìn)行更新;
[0062] 當(dāng)完成對(duì)字符連通域的遍歷,即完成了文本行的初步定位工作。
[0063] 在一個(gè)優(yōu)選的實(shí)施例中,依據(jù)文本行的起始列和結(jié)束列信息及其包含的字符個(gè) 數(shù),對(duì)其進(jìn)行刪除和排序工作,獲取最終的文本行信息包括:若文本行的寬度小于寬度閾 值,或文本行內(nèi)包含字符個(gè)數(shù)小于個(gè)數(shù)閾值,則刪除該行;對(duì)刪除操作之后的文本行按行的 起始列數(shù)大小進(jìn)行排序。
[0064] 具體地,可以按照以下方式進(jìn)行文本行的篩選和排序工作。
[0065] 對(duì)文本行的篩選準(zhǔn)則為:文本行的寬度小于寬度閾值,或文本行內(nèi)包含字符個(gè)數(shù) 小于個(gè)數(shù)閾值。例如:
[0066] (a)line_down_row-line_up_row<10
[0067] (b)包含的字符連通域個(gè)數(shù)小于5
[0068] 若文本行滿足(a),(b)條件之一,則進(jìn)行刪除,剩余文本行為最終選取的文本行;
[0069] 對(duì)篩選后的文本行按line_up_row從小到大的順序排序,進(jìn)行輸出,即完成了文本 圖像中文本行的定位的方法。
[0070] 以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何 熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵 蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1. 一種文本圖像中文本行定位的方法,其特征在于,所述方法包括: 通過(guò)圖像灰度矩陣計(jì)算所述文本圖像局部對(duì)比度矩陣; 將所述局部對(duì)比度矩陣使用最大賭分割法進(jìn)行二值劃分,得到二值圖像; 對(duì)所述二值圖像進(jìn)行連通域的提取、合并和刪除操作,獲取字符連通域; 對(duì)提取的字符連通域,依據(jù)其左側(cè)水平坐標(biāo)的大小進(jìn)行排序; 對(duì)排序后的字符連通域,進(jìn)行文本行的定位工作,獲取所有文本行的起始列和結(jié)束列 信息; 依據(jù)所述文本行的起始列和結(jié)束列信息及其包含的字符個(gè)數(shù),對(duì)其進(jìn)行刪除和排序工 作,從而實(shí)現(xiàn)所述文本行的定位。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 根據(jù)W下公式計(jì)算所述文本圖像局部對(duì)比度數(shù)值:其中,所述I(i,j)表示位置(i,j)處的灰度值,所述Imax(i,j)和所述I"in(i,j)分別表示 W(i,j)為中屯、的局部鄰域內(nèi)的最大和最小灰度值,所述ae(〇,l),其為可調(diào)參數(shù),所述ε為 無(wú)窮小量,其用于防止分母為0,所述Con(i,j)表示(i,j)處的局部對(duì)比度數(shù)值。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 選定一闊值; 根據(jù)所述闊值將所述局部對(duì)比度數(shù)值分為二部分; 分別統(tǒng)計(jì)所述二部分的概率分布直方圖; 根據(jù)所述二部分的概率分布直方圖,計(jì)算所述二部分的賭之和; 基于所述二部分的賭之和,并利用最大賭原理,確定最優(yōu)闊值。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述二值圖像進(jìn)行連通域的提取、 合并和刪除操作,獲取字符連通域,具體包括: 對(duì)所述二值圖像進(jìn)行連通域的分析,提取所述文本圖像的連通域; 刪除不符合預(yù)定尺寸要求的連通域; 將重疊區(qū)域比例較大的二連通域,合并成一連通域。5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述獲取所有文本行的起始列和結(jié)束列信 息包括: 對(duì)所述字符連通域進(jìn)行遍歷,針對(duì)每一所述字符連通域執(zhí)行W下操作中的至少之一, W確定所述文本行的起始列和結(jié)束列: 若所述字符連通域中的字符的text_w_;row和text_down_;row所確定的區(qū)域和當(dāng)前存 在的行沒(méi)有重疊,貝包I建一行,并將該行的信息設(shè)置為:line_up_;row = text_up_;row, line_ down_row = text_down_row; 若所述字符的text_up_;row和text_down_;row所確定的區(qū)域和當(dāng)前存在的某一行有重 疊,則認(rèn)為所述字符屬于該行,并更新該行的信息:line_up_;row=min(text_up_;row,line_ up_row),line_down_row=max(text_down_row,line_down_row); 若所述字符的text_up_;row和text_down_;row所確定的區(qū)域包含在某一行的區(qū)域內(nèi),則 所述字符屬于該行,且不更新所述行的坐標(biāo)信息; 若所述字符的text_up_;row和text_down_;row所確定的區(qū)域與某兩行都存在重疊區(qū)域, 則把該字符放到重疊區(qū)域較多的一行中,并對(duì)該行進(jìn)行信息更新; 其中,所述line_up_;row和所述line_down_;row分別表示所述文本行的起始列和文本行 的結(jié)束列;所述text_up_;row和所述text_down_;row分別表示所述連通域最小外包矩形的起 始行坐標(biāo)和最小外包矩形的結(jié)束行坐標(biāo)。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依據(jù)所述文本行的起始列和結(jié)束列信 息及其包含的字符個(gè)數(shù),對(duì)其進(jìn)行刪除和排序工作,獲取最終的文本行信息,具體包括: 若所述文本行的寬度小于寬度闊值,或所述文本行內(nèi)包含字符個(gè)數(shù)小于個(gè)數(shù)闊值,貝U 刪除該行; 對(duì)刪除操作之后的文本行按行的起始列數(shù)大小進(jìn)行排序。
【文檔編號(hào)】G06K9/20GK105844275SQ201610178271
【公開日】2016年8月10日
【申請(qǐng)日】2016年3月25日
【發(fā)明人】劉輝, 石勝坤, 陳李江
【申請(qǐng)人】北京云江科技有限公司