專利名稱:排版方式識別方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機信息處理領(lǐng)域,尤其涉及一種排版方式識別方法和裝置。
背景技術(shù):
版式文檔的頁面可以包含一個或多個文字塊,每個文字塊包含一個或多個原始塊,如圖1所示,頁面中的一段文字被劃分為一個文字塊,該文字塊中的每個矩形包圍的文字為一個原始塊。目前可以采用橫排、豎排等排版方式對文字塊中的原始塊進行排版,對于每種排版方式,又具有不同的排版方向,例如,橫排包括從左到右和從右到左的排版方向,豎排也包括從左到右和從右到左的排版方向。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中存在以下技術(shù)問題如何自動識別版式文檔頁面中文字塊的排版方式及排版方向,目前還沒有具體的實現(xiàn)方案。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種排版方式識別方法和裝置,用于解決如何自動識別版式文檔頁面中文字塊的排版方式的問題。—種排版方式識別方法,該方法包括提取版式文檔頁面中文字塊內(nèi)的原始塊;根據(jù)提取到的各原始塊的序號將提取到的原始塊進行排序;計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值;確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值;根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,確定所述文字塊內(nèi)原始塊的排版方式。一種排版方式識別裝置,該裝置包括原始塊提取單元,用于提取版式文檔頁面中文字塊內(nèi)的原始塊;原始塊排序單元,用于根據(jù)提取到的各原始塊的序號將提取到的原始塊進行排序;基線差值計算單元,用于計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值;基線差值確定單元,用于確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值;排版方式確定單元,用于根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,確定所述文字塊內(nèi)原始塊的排版方式。本發(fā)明中,提取版式文檔頁面中文字塊內(nèi)的原始塊后,根據(jù)提取到的各原始塊的序號將提取到的原始塊進行排序,計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值,確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值,并根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,確定所述文字塊內(nèi)原始塊的排版方式。可見,采用本發(fā)明能夠自動識別版式文檔頁面中文字塊的排版方式,達到本發(fā)明的發(fā)明目的。
圖1為現(xiàn)有技術(shù)中的原始塊劃分示意圖;圖2為本發(fā)明實施例提供的方法流程示意圖;圖3A-3D為本發(fā)明實施例中的排版方式示意圖;圖3E為本發(fā)明實施例中的原始塊邊界示意圖;圖4為本發(fā)明實施例提供的裝置結(jié)構(gòu)示意圖。
具體實施例方式為了能夠?qū)崿F(xiàn)自動識別版式文檔頁面中文字塊的排版方式,本發(fā)明實施例提供一種排版方式識別方法,本方法中,將版式文檔頁面中文字塊內(nèi)的原始塊根據(jù)原始塊的序號進行排序后,計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值,并根據(jù)出現(xiàn)次數(shù)最多的水平基線差值以及出現(xiàn)次數(shù)最多的垂直基線差值,確定文字塊內(nèi)原始塊的排版方式。參見圖2,本發(fā)明實施例提供的排版方式識別方法,具體包括以下步驟步驟10 提取版式文檔頁面中文字塊內(nèi)的原始塊;步驟11 根據(jù)提取到的各原始塊的序號將提取到的原始塊進行排序;步驟12 計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值;步驟13 確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值;步驟14 根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,確定所述文字塊內(nèi)原始塊的排版方式。步驟11中,原始塊的序號是版式文檔制作者在制作版式文檔時為每個原始塊設(shè)置的序號,該序號標明了版式文檔中的原始塊的輸出順序。在根據(jù)各原始塊的序號將原始塊進行排序吋,若版式文檔制作者為原始塊設(shè)置的序號依次増大,則可以按照序號從小到大的順序?qū)⒏髟級K進行排序;若版式文檔制作者為原始塊設(shè)置的序號依次減小,則可以按照序號從大到小的順序?qū)⒏髟級K進行排序。步驟12中,兩個相鄰原始塊的水平基線差值是指,該兩個相鄰原始塊中ー個原始塊的水平基線值與另ー個原始塊的水平基線值的差值。兩個相鄰原始塊的垂直基線差值是指,該兩個相鄰原始塊中ー個原始塊的垂直基線值與另ー個原始塊的垂直基線值的差值。 因此,計算兩個相鄰原始塊的水平基線差值和垂直基線差值,其具體實現(xiàn)方式可以如下計算兩個相鄰原始塊中前一原始塊的水平基線值與后一原始塊的水平基線值的差值,將該差值作為兩個相鄰原始塊的水平基線差值;計算兩個相鄰原始塊中前一原始塊的垂直基線值與后一原始塊的垂直基線值的差值,將該差值作為兩個相鄰原始塊的垂直基線差值。需要說明的是,原始塊的水平基線值和垂直基線值是原始塊的屬性值,版式文檔制作者在輸入文字時,會自動設(shè)置原始塊的水平基線值和垂直基線值。步驟13中,確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值,其具體實現(xiàn)方式可以如下預先建立用于存儲水平基線差值和水平基線差值出現(xiàn)次數(shù)的第一映射表、以及用于存儲垂直基線差值和垂直基線差值出現(xiàn)次數(shù)的第二映射表;在步驟12中每計算得到一個水平基線差值后,在第一映射表中查找該水平基線差值,若查找到,則將該水平基線差值對應的出現(xiàn)次數(shù)加1,若未查找到,則將該水平基線差值保存在第一映射表中,并設(shè)置該水平基線差值出現(xiàn)的次數(shù)為1 ;在步驟12中每計算得到一個垂直基線差值后,在第二映射表中查找該垂直基線差值,若查找到,則將該垂直基線差值對應的出現(xiàn)次數(shù)加1,若未查找到,則將該垂直基線差值保存在第二映射表中,并設(shè)置該垂直基線差值出現(xiàn)的次數(shù)為1 ;每個水平基線差值對應的出現(xiàn)次數(shù)的初始值為0 ;在第一映射表中查找出現(xiàn)次數(shù)最多的水平基線差值,將查找到的水平基線差值確定為計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值;在第二映射表中查找出現(xiàn)次數(shù)最多的垂直基線差值,將查找到的垂直基線差值確定為計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值。步驟14中,根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值確定文字塊內(nèi)原始塊的排版方式,其具體實現(xiàn)方式可以如下若出現(xiàn)次數(shù)最多的水平基線差值與文字塊內(nèi)的原始塊的寬度值(即字寬)的差值的絕對值在預先設(shè)定的第一取值范圍內(nèi),并且出現(xiàn)次數(shù)最多的垂直基線差值與0的差值的絕對值在預先設(shè)定的第二取值范圍內(nèi),則確定所述文字塊內(nèi)原始塊的排版方式為橫排;橫排的排版方式可以參見圖3A;若所述出現(xiàn)次數(shù)最多的水平基線差值與0的差值的絕對值在預先設(shè)定的第三取值范圍內(nèi),并且出現(xiàn)次數(shù)最多的垂直基線差值與所述文字塊內(nèi)原始塊的高度值(即字高) 的差值的絕對值在預先設(shè)定的第四取值范圍內(nèi),則確定所述文字塊內(nèi)原始塊的排版方式為豎排;豎排的排版方式可以參見圖3B ;若所述出現(xiàn)次數(shù)最多的水平基線差值的絕對值大于所述出現(xiàn)次數(shù)最多的垂直基線差值的絕對值,則確定所述文字塊內(nèi)原始塊的排版方式為橫排式斜排;橫排式斜排的排版方式可以參見圖3C ;否則,確定所述文字塊內(nèi)原始塊的排版方式為豎排式斜排;豎排式斜排的排版方式可以參見圖3D。為了保證排版方式確定結(jié)果的精確性,第一取值范圍可以為0. 6-1,第二取值范圍可以為0. 01-0. 09,第三取值范圍可以為0. 01-0. 09,第四取值范圍可以為0. 6_1。當然,如果不考慮排版方式確定結(jié)果的精確性,第一取值范圍、第二取值范圍、第三取值范圍和第四取值范圍可以為不小于0的任何數(shù)值范圍。較佳的,在確定文字塊內(nèi)原始塊的排版方式為橫排之后,可以進一步確定橫排的排版方向,具體如下確定步驟12中計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值;
若確定的差值大于0,則確定橫排的排版方向為從左到右的橫排;否則,確定橫排的排版方向為從右到左的橫排。較佳的,在確定所述文字塊內(nèi)原始塊的排版方式為豎排之后,可以進一歩確定豎排的排版方向,具體如下確定文字塊內(nèi)包含的原始塊的列數(shù);若所述列數(shù)為1,則確定豎排的排版方向為無方向的豎排;若所述列數(shù)大于1,則計算相鄰兩列原始塊中每一列原始塊的序號平均值,若左列原始塊的序號平均值大于右列原始塊的序號平均值,則確定豎排的排版方向為從右到左的豎排;否則,確定豎排的排版方向為從左到右的豎排。較佳的,在確定所述文字塊內(nèi)原始塊的排版方式為橫排式斜排之后,可以進一歩確定橫排式斜排的排版方向,具體如下確定步驟12中計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值;若確定的差值大于0,則確定橫排式斜排的排版方向為從左到右的橫排式斜排; 否則,確定橫排式斜排的排版方向為從右到左的橫排式斜排。較佳的,在確定所述文字塊內(nèi)原始塊的排版方式為豎排式斜排之后,可以進一歩確定豎排式斜排的排版方向,具體如下確定文字塊內(nèi)包含的原始塊的列數(shù);若所述列數(shù)為1,則確定豎排式斜排的排版方向為無方向的豎排式斜排;若所述列數(shù)大于1,則計算相鄰兩列原始塊中每一列原始塊的序號平均值,若左列原始塊的序號平均值大于右列原始塊的序號平均值,則確定豎排式斜排的排版方向為從右到左的豎排式斜排;否則,確定豎排式斜排的排版方向為從左到右的豎排式斜排。上述確定步驟12中計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值,其具體實現(xiàn)可以如下首先步驟12中在每計算得到ー個水平基線差值后,確定該水平基線差值是否大于0,若是,則將初始值為0的水平計數(shù)器值加1,否則,將所述水平計數(shù)器值減1 ;在水平基線差值計算完成后,獲取所述水平計數(shù)器值,將該水平計數(shù)器值確定為上述計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值。上述確定文字塊內(nèi)包含的原始塊的列數(shù),其具體實現(xiàn)可以如下首先,對于提取到的原始塊中每兩個相鄰原始塊,執(zhí)行如下步驟計算后一原始塊與前一原始塊的垂直基線差值;確定該垂直基線差值是否大于預先設(shè)置的列間距值,若是, 則判定后一原始塊與前一原始塊位于不同列,將初始值為1的列數(shù)計數(shù)器值加1,否則,判定后ー原始塊與前一原始塊位于同一列;這里,為了保證統(tǒng)計結(jié)果的正確性,列間距值可以是不大于該后一原始塊的字號的1.1倍的數(shù)值,較佳的,列間距值可以是該后一原始塊的字號的1.1倍的數(shù)值。當然,列間距值還可以取其他任何大于0的數(shù)值。最后,將列數(shù)計數(shù)器值確定為文字塊內(nèi)包含的原始塊的列數(shù)。下面結(jié)合具體實施例對本發(fā)明進行說明實施例一步驟1 從版式文檔中提取文字塊中的原始塊以及原始塊的信息,原始塊的信息包括文字內(nèi)容、字號大小、序號、水平基線、垂直基線以及該文字塊的區(qū)域位置信息。文字塊中包含了一個及其以上的原始塊,本發(fā)明在提取文字塊時,其中的原始塊是已經(jīng)劃分好了的??梢詤⒖紙D1,圖1中每一個矩形包圍的文字就是一個原始塊。步驟2 對文字塊中的原始塊按照輸出時的順序即原始塊序號進行排序。步驟3 依次計算相鄰兩個原始塊的水平基線差值dx和垂直基線差值dy,根據(jù)dx 與0的關(guān)系,設(shè)置水平計數(shù)器hy的值,即如果dx大于0,則hy加1,否則hy減1。圖3E中矩形區(qū)域內(nèi)的文字“學”的垂直基線為97. 7,水平基線為522. 18,左邊界為97. 4,上邊界為506. 0,右邊界為117. 5,下邊界為525. 5。步驟4 分別統(tǒng)計出現(xiàn)次數(shù)最多的dx,將該dx記為fx,以及出現(xiàn)次數(shù)最多的dy,將該dy記為fy,具體如下:首先,依次將相鄰兩個原始塊的水平基線差值dx和垂直基線差值dy四舍五入取整;然后,設(shè)置兩個映射表(map),分別用來記錄dx和dy的值以及其出現(xiàn)的次數(shù);分別將dx和dy在其相應的映射表中查找,若dx或dy在映射表中未找到,則記錄在映射表中, 并設(shè)置其出現(xiàn)的次數(shù)為1 ;否則將其出現(xiàn)的次數(shù)加1 ;這里,從數(shù)據(jù)結(jié)構(gòu)上,映射表是一種具有鍵/值(key/value)結(jié)構(gòu)的集合,利用key 可以定位到其value,在本發(fā)明中,key相當于dx、dy,value相當于dx、dy分別出現(xiàn)的次數(shù)。本發(fā)明中,采用的是映射表,也可以設(shè)置其它的數(shù)據(jù)結(jié)構(gòu)集合,用來記錄key值和其相應的value值。最后,分別在dx、dy相應的映射表中查找出現(xiàn)次數(shù)最多的dx、dy,并分別記錄為 fx, fy。步驟5 判斷fx是否接近于原始塊的寬度且fy是否接近于0,即fx與原始塊的寬度值的差值的絕對值是否在0. 6-1內(nèi)、以及fy與0的差值的絕對值是否在0. 01-0. 09內(nèi), 判斷均為是,則確定排版方式為橫排。步驟6 根據(jù)水平計數(shù)器hy的值確定橫排的排版方向若hy大于0,則排版方向為從左到右的橫排,否則排版方向為從右到左的橫排。實施例二 步驟1 從版式文檔中提取文字塊中的原始塊以及原始塊的信息,原始塊的信息包括文字內(nèi)容、字號大小、序號、水平基線、垂直基線以及該文字塊的區(qū)域位置信息。文字塊中包含了一個及其以上的原始塊,本發(fā)明在提取文字塊時,其中的原始塊是已經(jīng)劃分好了的??梢詤⒖紙D1,圖1中每一個矩形包圍的文字就是一個原始塊。步驟2 對文字塊中的原始塊按照輸出時的順序即原始塊序號進行排序。步驟3 依次計算相鄰兩個原始塊的水平基線差值dx和垂直基線差值dy,根據(jù)dx 與0的關(guān)系,設(shè)置水平計數(shù)器hy的值,即如果dx大于0,則hy加1,否則hy減1。圖3E中矩形區(qū)域內(nèi)的文字“學”的垂直基線為97. 7,水平基線為522. 18,左邊界為97. 4,上邊界為506. 0,右邊界為117. 5,下邊界為525. 5。步驟4 分別統(tǒng)計出現(xiàn)次數(shù)最多的dx,將該dx記為fx,以及出現(xiàn)次數(shù)最多的dy,將該dy記為fy,具體如下:首先,依次將相鄰兩個原始塊的水平基線差值dx和垂直基線差值dy四舍五入取整;然后,設(shè)置兩個映射表(map),分別用來記錄dx和dy的值以及其出現(xiàn)的次數(shù);分別將dx和dy在其相應的映射表中查找,若dx或dy在映射表中未找到,則記錄在映射表中, 并設(shè)置其出現(xiàn)的次數(shù)為1 ;否則將其出現(xiàn)的次數(shù)加1 ;這里,從數(shù)據(jù)結(jié)構(gòu)上,映射表是ー種具有鍵/值(key/value)結(jié)構(gòu)的集合,利用key 可以定位到其value,在本發(fā)明中,key相當于dx、dy,value相當于dx、dy分別出現(xiàn)的次數(shù)。本發(fā)明中,采用的是映射表,也可以設(shè)置其它的數(shù)據(jù)結(jié)構(gòu)集合,用來記錄key值和其相應的value值。最后,分別在dx、dy相應的映射表中查找出現(xiàn)次數(shù)最多的dx、dy,并分別記錄為 fx, fy。步驟5 判斷fx是否接近于原始塊的寬度且fy是否接近于0,即fx與原始塊的寬度值的差值的絕對值是否在0. 6-1內(nèi)、以及fy與0的差值的絕對值是否在0. 01-0. 09內(nèi), 判斷不全為是,則繼續(xù)如下判斷步驟判斷fx是否接近于0且fy是否接近于原始塊的高度,即fx與0的差值的絕對值是否在0.01-0. 09內(nèi)、以及fy與原始塊的高度值的差值的絕對值是否在0. 6-1內(nèi),判斷均為是,則確定排版方式為豎排;步驟6 根據(jù)文字塊內(nèi)每行原始塊的序號平均值確定豎排的排版方向,具體如下首先,統(tǒng)計文字塊內(nèi)包含的原始塊的列數(shù),具體的對于每兩個相鄰原始塊,計算后一原始塊與前一原始塊的垂直基線差值;確定該垂直基線差值是否大于后ー原始塊的字號的1.1倍,若是,則判定后一原始塊與前一原始塊位于不同列,將初始值為1的列數(shù)計數(shù)器值加1,否則,判定后一原始塊與前一原始塊位于同一列;將最終的列數(shù)計數(shù)器值確定為文字塊內(nèi)包含的原始塊的列數(shù);然后,若文字塊中的列數(shù)不大于1,則排版方向為無方向豎排;若文字塊中的列數(shù)大于1行,則分別統(tǒng)計計算任意相鄰兩列原始塊的序號的平均值,并判斷兩列的左右位置關(guān)系,若左列的序號平均值大于右列序號的平均值,則排版方向為從右到左的豎排,否則排版方向為從左到右的豎排。實施例三步驟1 從版式文檔中提取文字塊中的原始塊以及原始塊的信息,原始塊的信息包括文字內(nèi)容、字號大小、序號、基線以及該文字塊的區(qū)域位置信息。文字塊中包含了一個及其以上的原始塊,本發(fā)明在提取文字塊時,其中的原始塊是已經(jīng)劃分好了的??梢詤⒖紙D1,圖1中每ー個矩形包圍的文字就是ー個原始塊。步驟2 對文字塊中的原始塊按照輸出時的順序即原始塊序號進行排序。步驟3 依次計算相鄰兩個原始塊的水平基線差值dx和垂直基線差值dy,根據(jù)dx 與0的關(guān)系,設(shè)置水平計數(shù)器hy的值,即如果dx大于0,則hy加1,否則hy減1。圖3E中矩形區(qū)域內(nèi)的文字“學”的垂直基線為97. 7,水平基線為522. 18,左邊界為97. 4,上邊界為506. 0,右邊界為117. 5,下邊界為525. 5。步驟4 分別統(tǒng)計出現(xiàn)次數(shù)最多的dx,將該dx記為fx,以及出現(xiàn)次數(shù)最多的dy,將該dy記為fy,具體如下:首先,依次將相鄰兩個原始塊的水平基線差值dx和垂直基線差值dy四舍五入取整;然后,設(shè)置兩個映射表(map),分別用來記錄dx和dy的值以及其出現(xiàn)的次數(shù);分別將dx和dy在其相應的映射表中查找,若dx或dy在映射表中未找到,則記錄在映射表中, 并設(shè)置其出現(xiàn)的次數(shù)為1 ;否則將其出現(xiàn)的次數(shù)加1 ;這里,從數(shù)據(jù)結(jié)構(gòu)上,映射表是ー種具有鍵/值(key/value)結(jié)構(gòu)的集合,利用key 可以定位到其value,在本發(fā)明中,key相當于dx、dy,value相當于dx、dy分別出現(xiàn)的次數(shù)。本發(fā)明中,采用的是映射表,也可以設(shè)置其它的數(shù)據(jù)結(jié)構(gòu)集合,用來記錄key值和其相應的value值。最后,分別在dx、dy相應的映射表中查找出現(xiàn)次數(shù)最多的dx、dy,并分別記錄為 fx, fy。步驟5 判斷fx是否接近于原始塊的寬度且fy是否接近于0,即fx與原始塊的寬度值的差值的絕對值是否在0. 6-1內(nèi)、以及fy與0的差值的絕對值是否在0. 01-0. 09內(nèi), 判斷不全為是,則判斷fx是否接近于0且fy是否接近于原始塊的高度,即fx與0的差值的絕對值是否在0.01-0. 09內(nèi)、以及fy與原始塊的高度值的差值的絕對值是否在0. 6-1內(nèi),判斷不全為是,則繼續(xù)如下判斷步驟判斷fx的絕對值是否大于fy的絕對值,若是,則確定為橫排式斜排,否則為豎排式斜排。步驟6 確定排版方向的類型。若排版方式為橫排式斜排,則根據(jù)水平計數(shù)器hy的值確定排版方向若hy大于 0,則排版方向為從左到右的橫排式斜排,否則排版方向為從右到左的橫排式斜排。若排版方式為豎排式斜排,則根據(jù)文字塊內(nèi)每列原始塊的序號平均值確定排版方向,具體如下統(tǒng)計文字塊內(nèi)包含的原始塊的列數(shù),具體實現(xiàn)方法與實施例二相同;若文字塊中的列數(shù)不大于1,則排版方向為無方向豎排式斜排;若文字塊中的列數(shù)大于1行,則分別統(tǒng)計計算任意相鄰兩列原始塊的序號的平均值,并判斷兩列的左右位置關(guān)系,若左列的序號平均值大于右列序號的平均值,則排版方向為從右到左的豎排式斜排,否則排版方向為從左到右的豎排式斜排。參見圖4,本發(fā)明實施例還提供一種排版方式識別裝置,該裝置包括原始塊提取単元30,用于提取版式文檔頁面中文字塊內(nèi)的原始塊;原始塊排序単元31,用于根據(jù)提取到的各原始塊的序號將提取到的原始塊進行排序;基線差值計算單元32,用于計算排序后每兩個相鄰原始塊的水平基線差值和垂直
基線差值;基線差值確定單元33,用于確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值;排版方式確定單元34,用于根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,確定所述文字塊內(nèi)原始塊的排版方式。進一歩,所述基線差值計算単元32具體可用于
計算兩個相鄰原始塊中前一原始塊的水平基線的縱向坐標值與后一原始塊的水平基線的縱向坐標值的差值,將該差值作為兩個相鄰原始塊的水平基線差值;計算兩個相鄰原始塊中前一原始塊的垂直基線的橫向坐標值與后一原始塊的垂直基線的橫向坐標值的差值,將該差值作為兩個相鄰原始塊的垂直基線差值。進一步,所述基線差值確定單元33具體可用于建立用于存儲水平基線差值和水平基線差值出現(xiàn)次數(shù)的第一映射表、以及用于存儲垂直基線差值和垂直基線差值出現(xiàn)次數(shù)的第二映射表;在每計算得到一個水平基線差值后,在第一映射表中查找該水平基線差值,若查找到,則將該水平基線差值對應的出現(xiàn)次數(shù)加1,若未查找到,則將該水平基線差值保存在第一映射表中,并設(shè)置該水平基線差值出現(xiàn)的次數(shù)為1 ;在每計算得到一個垂直基線差值后,在第二映射表中查找該垂直基線差值,若查找到,則將該垂直基線差值對應的出現(xiàn)次數(shù)加1,若未查找到,則將該垂直基線差值保存在第二映射表中,并設(shè)置該垂直基線差值出現(xiàn)的次數(shù)為1 ;在第一映射表中查找出現(xiàn)次數(shù)最多的水平基線差值,將查找到的水平基線差值確定為計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值;在第二映射表中查找出現(xiàn)次數(shù)最多的垂直基線差值,將查找到的垂直基線差值確定為計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值。進一步,所述排版方式確定單元34具體可用于若所述出現(xiàn)次數(shù)最多的水平基線差值與所述文字塊內(nèi)的原始塊的寬度值的差值的絕對值在預先設(shè)定的第一取值范圍內(nèi),并且出現(xiàn)次數(shù)最多的垂直基線差值與0的差值的絕對值在預先設(shè)定的第二取值范圍內(nèi),則確定所述文字塊內(nèi)原始塊的排版方式為橫排;若所述出現(xiàn)次數(shù)最多的水平基線差值與0的差值的絕對值在預先設(shè)定的第三取值范圍內(nèi),并且出現(xiàn)次數(shù)最多的垂直基線差值與所述文字塊內(nèi)原始塊的高度值的差值的絕對值在預先設(shè)定的第四取值范圍內(nèi),則確定所述文字塊內(nèi)原始塊的排版方式為豎排;若所述出現(xiàn)次數(shù)最多的水平基線差值的絕對值大于所述出現(xiàn)次數(shù)最多的垂直基線差值的絕對值,則確定所述文字塊內(nèi)原始塊的排版方式為橫排式斜排;否則,確定所述文字塊內(nèi)原始塊的排版方式為豎排式斜排。進一步,該裝置進一步包括第一排版方向確定單元35,用于在確定所述文字塊內(nèi)原始塊的排版方式為橫排之后,確定計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值;若確定的差值大于0,則確定橫排的排版方向為從左到右的橫排;否則,確定橫排的排版方向為從右到左的橫排。進一步,該裝置進一步包括第二排版方向確定單元36,用于在確定所述文字塊內(nèi)原始塊的排版方式為豎排之后,確定所述文字塊內(nèi)包含的原始塊的列數(shù);若所述列數(shù)為1,則確定豎排的排版方向為無方向的豎排;若所述列數(shù)大于1,則計算相鄰兩列原始塊中每一列原始塊的序號平均值,若左列原始塊的序號平均值大于右列原始塊的序號平均值,則確定豎排的排版方向為從右到左的豎排;否則,確定豎排的排版方向為從左到右的豎排。進一歩,該裝置進ー步包括第三排版方向確定單元37,用于在確定所述文字塊內(nèi)原始塊的排版方式為橫排式斜排之后,確定計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值;若確定的差值大于0,則確定橫排式斜排的排版方向為從左到右的橫排式斜排; 否則,確定橫排式斜排的排版方向為從右到左的橫排式斜排。進一歩,該裝置進ー步包括第四排版方向確定單元38,用于在確定所述文字塊內(nèi)原始塊的排版方式為豎排式斜排之后,確定所述文字塊內(nèi)包含的原始塊的列數(shù);若所述列數(shù)為1,則確定豎排式斜排的排版方向為無方向的豎排式斜排;若所述列數(shù)大于1,則計算相鄰兩列原始塊中每一列原始塊的序號平均值,若左列原始塊的序號平均值大于右列原始塊的序號平均值,則確定豎排式斜排的排版方向為從右到左的豎排式斜排;否則,確定豎排式斜排的排版方向為從左到右的豎排式斜排。進一歩,該裝置進ー步包括計數(shù)器単元39,用于在每計算得到ー個水平基線差值后,確定該水平基線差值是否大于0,若是,則將初始值為0的水平計數(shù)器值加1,否則,將所述水平計數(shù)器值減1 ;相應的,所述第一排版方向確定單元35或第三排版方向確定單元37具體可用干獲取所述水平計數(shù)器值,將該水平計數(shù)器值確定為計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值。進一歩,所述第二排版方向確定單元36或第四排版方向確定單元38具體可用干對于提取到的原始塊中每兩個相鄰原始塊,計算后ー原始塊與前一原始塊的垂直基線差值;確定該垂直基線差值大于預先設(shè)置的列間距值,則判定后一原始塊與前一原始塊位于不同列,否則,判定后一原始塊與前一原始塊位于同一列;根據(jù)判定結(jié)果確定所述文字塊內(nèi)包含的原始塊的列數(shù)。綜上,本發(fā)明的有益效果包括本發(fā)明實施例提供的方案中,提取版式文檔頁面中文字塊內(nèi)的原始塊后,根據(jù)提取到的各原始塊的序號將提取到的原始塊進行排序,計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值,確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值,并根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,確定所述文字塊內(nèi)原始塊的排版方式。可見,采用本發(fā)明能夠自動識別版式文檔頁面中文字塊內(nèi)原始塊的排版方式,達到本發(fā)明的發(fā)明目的。本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每ー 流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種排版方式識別方法,其特征在于,該方法包括 提取版式文檔頁面中文字塊內(nèi)的原始塊;根據(jù)提取到的各原始塊的序號將提取到的原始塊進行排序; 計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值; 確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值;根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,確定所述文字塊內(nèi)原始塊的排版方式。
2.如權(quán)利要求1所述的方法,其特征在干,計算兩個相鄰原始塊的水平基線差值和垂直基線差值包括計算兩個相鄰原始塊中前一原始塊的水平基線值與后一原始塊的水平基線值的差值, 將該差值作為兩個相鄰原始塊的水平基線差值;計算兩個相鄰原始塊中前一原始塊的垂直基線值與后一原始塊的垂直基線值的差值, 將該差值作為兩個相鄰原始塊的垂直基線差值。
3.如權(quán)利要求1所述的方法,其特征在干,所述確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值包括建立用于存儲水平基線差值和水平基線差值出現(xiàn)次數(shù)的第一映射表、以及用于存儲垂直基線差值和垂直基線差值出現(xiàn)次數(shù)的第二映射表;在每計算得到ー個水平基線差值后,在第一映射表中查找該水平基線差值,若查找到, 則將該水平基線差值對應的出現(xiàn)次數(shù)加1,若未查找到,則將該水平基線差值保存在第一映射表中,并設(shè)置該水平基線差值出現(xiàn)的次數(shù)為1 ;在每計算得到ー個垂直基線差值后,在第 ニ映射表中查找該垂直基線差值,若查找到,則將該垂直基線差值對應的出現(xiàn)次數(shù)加1,若未查找到,則將該垂直基線差值保存在第二映射表中,并設(shè)置該垂直基線差值出現(xiàn)的次數(shù)為1 ;在第一映射表中查找出現(xiàn)次數(shù)最多的水平基線差值,將查找到的水平基線差值確定為計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值;在第二映射表中查找出現(xiàn)次數(shù)最多的垂直基線差值,將查找到的垂直基線差值確定為計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值。
4.如權(quán)利要求1所述的方法,其特征在干,所述根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,確定所述文字塊內(nèi)原始塊的排版方式包括若所述出現(xiàn)次數(shù)最多的水平基線差值與所述文字塊內(nèi)的原始塊的寬度值的差值的絕對值在預先設(shè)定的第一取值范圍內(nèi),并且出現(xiàn)次數(shù)最多的垂直基線差值與0的差值的絕對值在預先設(shè)定的第二取值范圍內(nèi),則確定所述文字塊內(nèi)原始塊的排版方式為橫排;若所述出現(xiàn)次數(shù)最多的水平基線差值與0的差值的絕對值在預先設(shè)定的第三取值范圍內(nèi),并且出現(xiàn)次數(shù)最多的垂直基線差值與所述文字塊內(nèi)原始塊的高度值的差值的絕對值在預先設(shè)定的第四取值范圍內(nèi),則確定所述文字塊內(nèi)原始塊的排版方式為豎排;若所述出現(xiàn)次數(shù)最多的水平基線差值的絕對值大于所述出現(xiàn)次數(shù)最多的垂直基線差值的絕對值,則確定所述文字塊內(nèi)原始塊的排版方式為橫排式斜排;否則,確定所述文字塊內(nèi)原始塊的排版方式為豎排式斜排。
5.如權(quán)利要求4所述的方法,其特征在于,在確定所述文字塊內(nèi)原始塊的排版方式為橫排之后,該方法進一步包括確定計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值;若確定的差值大于0,則確定橫排的排版方向為從左到右的橫排;否則,確定橫排的排版方向為從右到左的橫排。
6.如權(quán)利要求4所述的方法,其特征在于,在確定所述文字塊內(nèi)原始塊的排版方式為豎排之后,該方法進一步包括確定所述文字塊內(nèi)包含的原始塊的列數(shù);若所述列數(shù)為1,則確定豎排的排版方向為無方向的豎排;若所述列數(shù)大于1,則計算相鄰兩列原始塊中每一列原始塊的序號平均值,若左列原始塊的序號平均值大于右列原始塊的序號平均值,則確定豎排的排版方向為從右到左的豎排;否則,確定豎排的排版方向為從左到右的豎排。
7.如權(quán)利要求4所述的方法,其特征在于,在確定所述文字塊內(nèi)原始塊的排版方式為橫排式斜排之后,該方法進一步包括確定計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值;若確定的差值大于0,則確定橫排式斜排的排版方向為從左到右的橫排式斜排;否則, 確定橫排式斜排的排版方向為從右到左的橫排式斜排。
8.如權(quán)利要求4所述的方法,其特征在于,在確定所述文字塊內(nèi)原始塊的排版方式為豎排式斜排之后,該方法進一步包括確定所述文字塊內(nèi)包含的原始塊的列數(shù);若所述列數(shù)為1,則確定豎排式斜排的排版方向為無方向的豎排式斜排; 若所述列數(shù)大于1,則計算相鄰兩列原始塊中每一列原始塊的序號平均值,若左列原始塊的序號平均值大于右列原始塊的序號平均值,則確定豎排式斜排的排版方向為從右到左的豎排式斜排;否則,確定豎排式斜排的排版方向為從左到右的豎排式斜排。
9.一種排版方式識別裝置,其特征在于,該裝置包括原始決提取單元,用于提取版式文檔頁面中文字塊內(nèi)的原始塊;原始塊排序單元,用于根據(jù)提取到的各原始塊的序號將提取到的原始塊進行排序;基線差值計算單元,用于計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值;基線差值確定單元,用于確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值;排版方式確定單元,用于根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,確定所述文字塊內(nèi)原始塊的排版方式。
10.如權(quán)利要求9所述的裝置,其特征在于,所述基線差值計算單元用于計算兩個相鄰原始塊中前一原始塊的水平基線值與后一原始塊的水平基線值的差值, 將該差值作為兩個相鄰原始塊的水平基線差值;計算兩個相鄰原始塊中前一原始塊的垂直基線值與后一原始塊的垂直基線值的差值, 將該差值作為兩個相鄰原始塊的垂直基線差值。
11.如權(quán)利要求9所述的裝置,其特征在于,所述基線差值確定單元用于建立用于存儲水平基線差值和水平基線差值出現(xiàn)次數(shù)的第一映射表、以及用于存儲垂直基線差值和垂直基線差值出現(xiàn)次數(shù)的第二映射表;在每計算得到一個水平基線差值后,在第一映射表中查找該水平基線差值,若查找到, 則將該水平基線差值對應的出現(xiàn)次數(shù)加1,若未查找到,則將該水平基線差值保存在第一映射表中,并設(shè)置該水平基線差值出現(xiàn)的次數(shù)為1 ;在每計算得到一個垂直基線差值后,在第二映射表中查找該垂直基線差值,若查找到,則將該垂直基線差值對應的出現(xiàn)次數(shù)加1,若未查找到,則將該垂直基線差值保存在第二映射表中,并設(shè)置該垂直基線差值出現(xiàn)的次數(shù)為1 ;在第一映射表中查找出現(xiàn)次數(shù)最多的水平基線差值,將查找到的水平基線差值確定為計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值;在第二映射表中查找出現(xiàn)次數(shù)最多的垂直基線差值,將查找到的垂直基線差值確定為計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值。
12.如權(quán)利要求9所述的裝置,其特征在于,所述排版方式確定單元用于若所述出現(xiàn)次數(shù)最多的水平基線差值與所述文字塊內(nèi)的原始塊的寬度值的差值的絕對值在預先設(shè)定的第一取值范圍內(nèi),并且出現(xiàn)次數(shù)最多的垂直基線差值與0的差值的絕對值在預先設(shè)定的第二取值范圍內(nèi),則確定所述文字塊內(nèi)原始塊的排版方式為橫排;若所述出現(xiàn)次數(shù)最多的水平基線差值與0的差值的絕對值在預先設(shè)定的第三取值范圍內(nèi),并且出現(xiàn)次數(shù)最多的垂直基線差值與所述文字塊內(nèi)原始塊的高度值的差值的絕對值在預先設(shè)定的第四取值范圍內(nèi),則確定所述文字塊內(nèi)原始塊的排版方式為豎排;若所述出現(xiàn)次數(shù)最多的水平基線差值的絕對值大于所述出現(xiàn)次數(shù)最多的垂直基線差值的絕對值,則確定所述文字塊內(nèi)原始塊的排版方式為橫排式斜排;否則,確定所述文字塊內(nèi)原始塊的排版方式為豎排式斜排。
13.如權(quán)利要求12所述的裝置,其特征在于,該裝置進一步包括第一排版方向確定單元,用于在確定所述文字塊內(nèi)原始塊的排版方式為橫排之后,確定計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值;若確定的差值大于0,則確定橫排的排版方向為從左到右的橫排;否則,確定橫排的排版方向為從右到左的橫排。
14.如權(quán)利要求12所述的裝置,其特征在于,該裝置進一步包括第二排版方向確定單元,用于在確定所述文字塊內(nèi)原始塊的排版方式為豎排之后,確定所述文字塊內(nèi)包含的原始塊的列數(shù);若所述列數(shù)為1,則確定豎排的排版方向為無方向的豎排;若所述列數(shù)大于1,則計算相鄰兩列原始塊中每一列原始塊的序號平均值,若左列原始塊的序號平均值大于右列原始塊的序號平均值,則確定豎排的排版方向為從右到左的豎排;否則,確定豎排的排版方向為從左到右的豎排。
15.如權(quán)利要求12所述的裝置,其特征在于,該裝置進一步包括第三排版方向確定單元,用于在確定所述文字塊內(nèi)原始塊的排版方式為橫排式斜排之后,確定計算得到的數(shù)值大于0的水平基線差值的個數(shù)與計算得到的數(shù)值小于0的水平基線差值的個數(shù)的差值;若確定的差值大于0,則確定橫排式斜排的排版方向為從左到右的橫排式斜排;否則, 確定橫排式斜排的排版方向為從右到左的橫排式斜排。
16.如權(quán)利要求12所述的裝置,其特征在于,該裝置進ー步包括 第四排版方向確定單元,用于在確定所述文字塊內(nèi)原始塊的排版方式為豎排式斜排之后,確定所述文字塊內(nèi)包含的原始塊的列數(shù);若所述列數(shù)為1,則確定豎排式斜排的排版方向為無方向的豎排式斜排; 若所述列數(shù)大于1,則計算相鄰兩列原始塊中每一列原始塊的序號平均值,若左列原始塊的序號平均值大于右列原始塊的序號平均值,則確定豎排式斜排的排版方向為從右到左的豎排式斜排;否則,確定豎排式斜排的排版方向為從左到右的豎排式斜排。
全文摘要
本發(fā)明實施例公開了一種排版方式識別方法和裝置,涉及計算機信息處理領(lǐng)域,用于解決如何自動識別版式文檔頁面中文字塊的排版方式的問題。本發(fā)明中,提取版式文檔頁面中文字塊內(nèi)的原始塊后,根據(jù)提取到的各原始塊的序號將提取到的原始塊進行排序,計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值,確定計算得到的水平基線差值中出現(xiàn)次數(shù)最多的水平基線差值以及計算得到的垂直基線差值中出現(xiàn)次數(shù)最多的垂直基線差值,并根據(jù)確定的出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,確定所述文字塊內(nèi)原始塊的排版方式??梢姡捎帽景l(fā)明能夠自動識別版式文檔頁面中文字塊的排版方式。
文檔編號G06F17/25GK102567302SQ20101062180
公開日2012年7月11日 申請日期2010年12月27日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者徐劍波, 朱興, 董寧, 黃文娟 申請人:北京方正阿帕比技術(shù)有限公司, 北大方正集團有限公司