專利名稱:文字塊內(nèi)容重組方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)信息處理領(lǐng)域,尤其涉及一種文字塊內(nèi)容重組方法及裝置。
背景技術(shù):
版式文件的頁面可以包含一個或多個文字塊,每個文字塊包含一個或多個原始塊,如圖1所示,頁面中的一段文字被劃分為一個文字塊,該文字塊中的每個矩形包圍的文字為一個原始塊。目前可以采用橫排、豎排等排版方式對文字塊中的原始塊進(jìn)行排版,對于每種排版方式,又具有不同的排版方向,例如,橫排包括從左到右和從右到左的排版方向,豎排也包括從左到右和從右到左的排版方向。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中存在以下技術(shù)問題對于采用一定排版方式的文字塊,如何對該文字塊內(nèi)的原始塊進(jìn)行排序,以還原該文字塊內(nèi)原始塊的閱讀順序,目前還沒有具體的實(shí)現(xiàn)方案。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種文字塊內(nèi)容重組方法及裝置,用于解決現(xiàn)有技術(shù)中無法對文字塊內(nèi)的原始塊進(jìn)行排序以還原該文字塊內(nèi)原始塊的閱讀順序的問題?!N文字塊內(nèi)容重組方法,該方法包括根據(jù)預(yù)先設(shè)定的排版方式與原始塊排序方式的對應(yīng)關(guān)系,確定文字塊內(nèi)原始塊的排版方式對應(yīng)的原始塊排序方式;按照所述原始塊排序方式對所述文字塊內(nèi)的原始塊進(jìn)行排序;將排序后的原始塊進(jìn)行輸出顯示。一種文字塊內(nèi)容重組裝置,該裝置包括排序方式確定單元,用于根據(jù)預(yù)先設(shè)定的排版方式與原始塊排序方式的對應(yīng)關(guān)系,確定文字塊內(nèi)原始塊的排版方式對應(yīng)的原始塊排序方式;原始塊排序單元,用于按照所述原始塊排序方式對所述文字塊內(nèi)的原始塊進(jìn)行排序;內(nèi)容還原單元,將排序后的原始塊進(jìn)行輸出顯示。本發(fā)明中,根據(jù)預(yù)先設(shè)定的排版方式與原始塊排序方式的對應(yīng)關(guān)系,確定文字塊內(nèi)原始塊的排版方式對應(yīng)的原始塊排序方式,然后按照該原始塊排序方式對文字塊內(nèi)的原始塊進(jìn)行排序,并將排序后的原始塊進(jìn)行輸出顯示??梢?,采用本發(fā)明,能夠?qū)Σ捎靡欢ㄅ虐娣绞降奈淖謮K內(nèi)的原始塊進(jìn)行排序,以還原該文字塊內(nèi)原始塊的閱讀順序。
圖1為現(xiàn)有技術(shù)中的原始塊劃分示意圖;圖2為本發(fā)明實(shí)施例提供的方法流程示意5
圖3A-圖3D為本發(fā)明實(shí)施例中的排版方式示意圖;圖3E為本發(fā)明實(shí)施例中的原始塊邊界線示意圖;圖4A-圖4J為本發(fā)明實(shí)施例中的文字塊內(nèi)容重組示意圖;圖5為本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了對采用一定排版方式的文字塊內(nèi)的原始塊進(jìn)行排序,以還原該文字塊內(nèi)原始塊的閱讀順序,本發(fā)明實(shí)施例提供一種文字塊內(nèi)容重組方法,本方法中,根據(jù)預(yù)先設(shè)定的排版方式與原始塊排序方式的對應(yīng)關(guān)系,確定文字塊內(nèi)原始塊的排版方式對應(yīng)的原始塊排序方式,然后按照該原始塊排序方式對文字塊內(nèi)的原始塊進(jìn)行排序,并將排序后的原始塊進(jìn)行輸出顯示。參見圖2,本發(fā)明實(shí)施例提供的文字塊內(nèi)容重組方法,包括以下步驟步驟20 根據(jù)預(yù)先設(shè)定的排版方式與原始塊排序方式的對應(yīng)關(guān)系,確定文字塊內(nèi)原始塊的排版方式對應(yīng)的原始塊排序方式;步驟21 按照確定的原始塊排序方式對文字塊內(nèi)的原始塊進(jìn)行排序;步驟22 將排序后的原始塊進(jìn)行輸出顯示。步驟20和步驟21中,在文字塊內(nèi)原始塊的排版方式為橫排或豎排時,原始塊排序方式具體包括以下步驟a和步驟b 步驟a 根據(jù)文字塊內(nèi)各原始塊的序號將文字塊內(nèi)的原始塊進(jìn)行排序;步驟b 對于步驟a的排序結(jié)果中的每兩個相鄰原始塊執(zhí)行如下步驟計算兩個相鄰原始塊的重疊度,根據(jù)兩個相鄰原始塊的重疊度確定兩個相鄰原始塊的新的位置關(guān)系; 若該位置關(guān)系與兩個相鄰原始塊在步驟a的排序結(jié)果中的位置關(guān)系不同,則將兩個相鄰原始塊在步驟a的排序結(jié)果中的位置互換。執(zhí)行完步驟b后,即得到文字塊內(nèi)的原始塊的排序結(jié)果。步驟a中,原始塊的序號是版式文檔制作者在制作版式文檔時為每個原始塊設(shè)置的序號,該序號標(biāo)明了版式文檔中的原始塊的輸出順序。在根據(jù)各原始塊的序號將原始塊進(jìn)行排序時,若版式文檔制作者為原始塊設(shè)置的序號依次增大,則可以按照序號從小到大的順序?qū)⒏髟級K進(jìn)行排序;若版式文檔制作者為原始塊設(shè)置的序號依次減小,則可以按照序號從大到小的順序?qū)⒏髟級K進(jìn)行排序。步驟b中,根據(jù)兩個相鄰原始塊的重疊度確定兩個相鄰原始塊的新的位置關(guān)系, 其具體實(shí)現(xiàn)可以如下分支一確定兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系和上下位置關(guān)系;若兩個相鄰原始塊在水平方向的重疊度小于預(yù)先設(shè)置的第一閾值,則根據(jù)兩個相鄰原始塊的上下位置關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系,即在上的原始塊在新的位置關(guān)系中是位于第一個的原始塊,在下的原始塊在新的位置關(guān)系中是位于第二個的原始塊;分支二 若兩個相鄰原始塊在垂直方向的重疊度小于0,則根據(jù)兩個相鄰原始塊的前后位置關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系,即在前的原始塊在新的位置關(guān)系中是位于第一個的原始塊,在后的原始塊在新的位置關(guān)系中是位于第二個的原始塊;分支三若兩個相鄰原始塊在水平方向的重疊度和在垂直方向的重疊度都大于預(yù)先設(shè)置的第二閾值,則根據(jù)兩個相鄰原始塊的序號確定兩個相鄰原始塊的新的位置關(guān)系, 即序號較小的原始塊在新的位置關(guān)系中是位于第一個的原始塊,序號較大的原始塊在新的位置關(guān)系中是位于第二個的原始塊;分支四若兩個相鄰原始塊在垂直方向的重疊度小于在水平方向的重疊度,則根據(jù)兩個相鄰原始塊的左邊界差值和右邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系;分支五若兩個相鄰原始塊在垂直方向的重疊度不小于在水平方向的重疊度,則根據(jù)兩個相鄰原始塊的上邊界差值和下邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系。上述分支一中,確定兩個相鄰原始塊的前后位置關(guān)系,其具體實(shí)現(xiàn)可以如下計算兩個相鄰原始塊的左邊界差值和兩個相鄰原始塊的右邊界差值;具體的,計算兩個相鄰原始塊中Blocki的左邊界與原始塊Blockj的左邊界之差,得到兩個相鄰原始塊的左邊界差值、以及原始塊Blockj的右邊界與原始塊Blocki的右邊界之差,得到兩個相鄰原始塊的右邊界差值,其中下標(biāo)i,j分別表示序號;若左邊界差值小于右邊界差值并且文字塊內(nèi)原始塊的排版方式為從左到右的橫排或從左到右的豎排或無方向豎排,則確定兩個相鄰原始塊的前后位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后;若左邊界差值小于右邊界差值并且文字塊內(nèi)原始塊的排版方式為從右到左的橫排或從右到左的豎排,則確定兩個相鄰原始塊的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且文字塊內(nèi)原始塊的排版方式為從左到右的橫排或從左到右的豎排或無方向豎排,則確定該兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且文字塊內(nèi)原始塊的排版方式為從右到左的橫排或從右到左的豎排,則確定該兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后。上述分支一中,確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系,其具體實(shí)現(xiàn)可以如下計算兩個相鄰原始塊的上邊界差值和兩個相鄰原始塊的下邊界差值;具體的,計算兩個相鄰原始塊中Blocki的上邊界與原始塊Blockj的上邊界之差,得到兩個相鄰原始塊的上邊界差值、以及原始塊Blockj的下邊界與原始塊Blocki的下邊界之差,得到兩個相鄰原始塊的下邊界差值,其中下標(biāo)i,j分別表示序號;若上邊界差值小于下邊界差值,則確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在上,第二個原始塊在下;若上邊界差值不小于下邊界差值,則確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第二個原始塊在上,第一個原始塊在下。上述分支四中,根據(jù)兩個相鄰原始塊的左邊界差值和右邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系,其具體實(shí)現(xiàn)可以如下若左邊界差值小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從左到右的橫排或從左到右的豎排或無方向豎排,則確定兩個相鄰原始塊的前后位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后;若左邊界差值小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的橫排或從右到左的豎排,則確定兩個相鄰原始塊的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從左到右的橫排或從左到右的豎排或無方向豎排,則確定該兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的橫排或從右到左的豎排,則確定該兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后。上述分支五中,根據(jù)兩個相鄰原始塊的上邊界差值和下邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系,其具體實(shí)現(xiàn)可以如下若上邊界差值小于下邊界差值,則確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在上,第二個原始塊在下;若上邊界差值不小于下邊界差值,則確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第二個原始塊在上,第一個原始塊在下。上述分支一中,在文字塊內(nèi)原始塊的排版方式為橫排或無方向的豎排、并且兩個相鄰原始塊在文字塊內(nèi)同行時,第一閾值可以在-0. 07與-0. 1之間取值;在文字塊內(nèi)原始塊的排版方式為橫排或無方向的豎排、并且兩個相鄰原始塊在文字塊內(nèi)不同行時,第一閾值在-0. 03與-0. 06之間取值;在文字塊內(nèi)原始塊的排版方式為從左到右或從右到左的豎排時,第一閾值的取值可以為0。上述分支三中,第二閾值可以在0. 5與1之間取值。當(dāng)然,上述所列出的第一閾值和第二閾值的取值范圍均為較優(yōu)的取值范圍,任何其他取值范圍仍在本發(fā)明的保護(hù)范圍內(nèi),并能夠?qū)崿F(xiàn)本發(fā)明的發(fā)明目的。具體的,可以按照如下方式確定兩個相鄰原始塊在文字塊內(nèi)是否同行首先,比較兩個相鄰原始塊的水平基線值的大小,根據(jù)具有較大水平基線值的原始塊的字號確定行間距大?。焕?,將具有較大水平基線值的原始塊的字號的C倍作為行間距大小,C可以在0. 91-1中取值,當(dāng)然,C也可以取其他大于0的數(shù)值;然后,計算該兩個相鄰原始塊的水平基線差值,若水平基線差值大于所述行間距大小,則確定該兩個相鄰原始塊在文字塊內(nèi)不同行,否則,確定該兩個相鄰原始塊在文字塊內(nèi)同行。步驟20和步驟21中,在文字塊內(nèi)原始塊的排版方式為斜排時,原始塊排序方式具體可以包括如下步驟C-步驟f 步驟c 根據(jù)文字塊內(nèi)各原始塊的序號將文字塊內(nèi)的原始塊進(jìn)行排序;步驟d 將文字塊所在的坐標(biāo)系進(jìn)行旋轉(zhuǎn)變換;步驟e 根據(jù)步驟c中排序后各原始塊在旋轉(zhuǎn)變換后的坐標(biāo)系中的位置坐標(biāo),將各原始塊進(jìn)行分組,分組后同一組中的原始塊位于同一行或同一列;步驟f:根據(jù)分組后各組的原始塊序號平均值,將分組后的各組進(jìn)行排序,并且, 對于每個分組,根據(jù)所述文字塊的排版方向?qū)⒃摲纸M內(nèi)的原始塊進(jìn)行排序。
執(zhí)行完步驟f后,即得到文字塊內(nèi)的原始塊的排序結(jié)果。步驟c中,原始塊的序號是版式文檔制作者在制作版式文檔時為每個原始塊設(shè)置的序號,該序號標(biāo)明了版式文檔中的原始塊的輸出順序。在根據(jù)各原始塊的序號將原始塊進(jìn)行排序時,若版式文檔制作者為原始塊設(shè)置的序號依次增大,則可以按照序號從小到大的順序?qū)⒏髟級K進(jìn)行排序;若版式文檔制作者為原始塊設(shè)置的序號依次減小,則可以按照序號從大到小的順序?qū)⒏髟級K進(jìn)行排序。步驟d中,將文字塊所在的坐標(biāo)系進(jìn)行旋轉(zhuǎn)變換,其具體實(shí)現(xiàn)可以如下首先,計算步驟c中排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值; 確定計算得到的出現(xiàn)次數(shù)最多的水平基線差值以及出現(xiàn)次數(shù)最多的垂直基線差值;根據(jù)出現(xiàn)次數(shù)最多的水平基線差值fx和出現(xiàn)次數(shù)最多的垂直基線差值fy,計算斜線的斜率k,例如,k = fy/fx ;然后,根據(jù)斜率k計算坐標(biāo)系旋轉(zhuǎn)角度值α,例如,計算公式可以為α = arctan(k);最后,根據(jù)坐標(biāo)系旋轉(zhuǎn)角度值α,將文字塊所在的坐標(biāo)系進(jìn)行旋轉(zhuǎn)變換,坐標(biāo)系旋轉(zhuǎn)數(shù)學(xué)公式為Χ,= χX cos α +y X sin α , y,= -χΧ sin α +y X cos α。步驟e中,根據(jù)排序后各原始塊在旋轉(zhuǎn)變換后的坐標(biāo)系中的位置坐標(biāo),將各原始塊進(jìn)行分組,其具體實(shí)現(xiàn)可以如下對于步驟c中排序后的每兩個相鄰原始塊,執(zhí)行如下步驟計算兩個相鄰原始塊中前一原始塊和后一原始塊在旋轉(zhuǎn)變換后的坐標(biāo)系中的水平基線值,確定計算得到的后一原始塊的水平基線值與前一原始塊水平基線值的差值是否小于預(yù)先設(shè)定的第三閾值,若是,則確定前一原始塊和后一原始塊位于同一行,并將前一原始塊和后一原始塊劃分在同一組中;否則,確定前一原始塊和后一原始塊位于不同行,并將前一原始塊和后一原始塊劃分在不同組中。這里,第三閾值可以為原始塊高度的0. 91-1倍,當(dāng)然第三閾值也可以是其它任何不小于0的數(shù)值。步驟f中,根據(jù)所述文字塊的排版方向?qū)⒃摲纸M內(nèi)的原始塊進(jìn)行排序,其具體實(shí)現(xiàn)可以如下在斜率k大于1時,確定文字塊內(nèi)原始塊的排版方式為豎排式斜排,并將分組內(nèi)的原始塊按照原始塊的上邊界值從小到大的順序進(jìn)行排序;在斜率k不大于1時,確定文字塊內(nèi)原始塊的排版方式為橫排式斜排,并將分組內(nèi)的原始塊按照原始塊的左邊界值從小到大的順序進(jìn)行排序。本發(fā)明中,橫排的排版方式可以參見圖3A ;豎排的排版方式可以參見圖:3B ;橫排式斜排的排版方式可以參見圖3C ;豎排式斜排的排版方式可以參見圖3D。本發(fā)明中,兩個原始塊的水平基線差值是指,該兩個原始塊中一個原始塊的水平基線與另一個原始塊的水平基線值的差值。兩個原始塊的垂直基線差值是指,該兩個原始塊中一個原始塊的垂直基線值與另一個原始塊的垂直基線值的差值。兩個原始塊的左邊界差值是指,該兩個原始塊中一個原始塊的左邊界值與另一個原始塊的左邊界值的差值。兩個原始塊的右邊界差值是指,該兩個原始塊中一個原始塊的右邊界值與另一個原始塊的右邊界值的差值。兩個原始塊的上邊界差值是指,該兩個原始塊中一個原始塊的上邊界值與另一個原始塊的上邊界值的差值。兩個原始塊的下邊界差值是指,該兩個原始塊中一個原始塊的下邊界值與另一個原始塊的下邊界值的差值。圖3E中矩形區(qū)域內(nèi)的文字“學(xué)”的垂直基線值為97. 7,水平基線值為522. 18,左邊界值為97. 4,上邊界值為506. 0,右邊界值為117. 5,下邊界值為525. 5。需要說明的是, 原始塊的水平基線值、垂直基線值、左邊界值、上邊界值、右邊界值、下邊界值是原始塊的屬性值,版式文檔制作者在輸入文字時,會自動進(jìn)行設(shè)置。本發(fā)明中,重疊度是指兩個原始塊在測量方向上的重疊長度與兩個原始塊在此方向上的投影長度的比率。兩個原始塊在水平方向的重疊度是指兩個原始塊的最小下邊界與最大上邊界之差,占最大下邊界與最小上邊界之差的比例。兩個原始塊在垂直方向的重疊度是指兩個原始塊的最小左邊界與最大右邊界之差,占最大左邊界與最小右邊界之差的比例。下面結(jié)合具體實(shí)施例對本發(fā)明進(jìn)行說明實(shí)施例一本實(shí)施例中,文字塊內(nèi)原始塊的排版方式為橫排或無方向豎排,對文字塊中的原始塊按照從左到右橫排或從右到左橫排的順序進(jìn)行排序,再重組文字塊內(nèi)容。具體排序方法如下步驟01 根據(jù)文字塊內(nèi)各原始塊的序號將文字塊內(nèi)的原始塊進(jìn)行排序;步驟02 依次分別計算文字塊內(nèi)兩相鄰原始塊Blocki和Blocki+1在水平方向的重疊度Oy和垂直方向的重疊度Ox ;步驟03 根據(jù)兩相鄰原始塊的左邊界之差和右邊界之差的大小,確定兩相鄰原始塊的前后位置關(guān)系;這里,可以使用Retx表示兩相鄰原始塊的左邊界之差和右邊界之差的大小關(guān)系, 例如,若左邊界之差小于右邊界之差并且所述文字塊內(nèi)原始塊的排版方式為從左到右的橫排或無方向豎排,則Retx的取值為-1,兩個相鄰原始塊的前后位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后;若左邊界差值小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的橫排,則徹、的取值為1,兩個相鄰原始塊的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從左到右的橫排或無方向豎排, 則Retx的取值為1,兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的橫排,則Retx的取值為-1,兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后。步驟04 根據(jù)兩相鄰原始塊的上邊界之差和下邊界之差的大小,確定兩相鄰原始塊的上下位置關(guān)系;這里,可以使用Rety表示兩相鄰原始塊的上邊界之差和下邊界之差的大小關(guān)系, 例如,若上邊界之差小于下邊界之差,則Rety的取值為-1,兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在上,第二個原始塊在下;若上邊界差值不小于下邊界差值,則Rety的取值為1,兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為 兩個相鄰原始塊中的第二個原始塊在上,第一個原始塊在下。
步驟05 根據(jù)兩相鄰原始塊是否同行,設(shè)置水平方向的重疊度Oy的閾值,同行時設(shè)置為-0. 08,不同行時設(shè)置為-0. 05。判定兩相鄰原始塊是否同行的方法為比較兩個相鄰原始塊的水平基線值的大小,將具有相對較大水平基線值的原始塊的字號的0. 95倍作為將行間距大??;計算這兩個相鄰原始塊的水平基線差值,并與行間距比較,若大于行間距,則不同行,否則同行。步驟06 若兩相鄰原始塊在水平方向不重疊,即在水平方向的重疊度Oy小于閾值,則根據(jù)上下位置關(guān)系進(jìn)行排序;步驟07 若兩原始塊在垂直方向不重疊,即在垂直方向的重疊度小于0,則根據(jù)前后關(guān)系排序;步驟08 若兩原始塊在水平和垂直方向均重疊,且重疊度都大于0. 5時,則按照與原始塊的序號進(jìn)行排序;步驟09 若上述條件都沒滿足,則按照重疊度進(jìn)行排序。按照重疊度進(jìn)行排序的方法如下若垂直方向的重疊度小于水平方向的重疊度,則根據(jù)徹、的大小進(jìn)行排序,即若 Retx小于0,則Blocki在前,否則Blocki+1在前;若垂直方向的重疊度不小于水平方向的重疊度,則根據(jù)Rety的大小進(jìn)行排序,即若Rety小于0,則Blocki在前,否則Blocki+1在前。如圖4A所示,為排版方式為橫排的文字塊示意圖;如圖4B所示,為按照上述方法對圖4A所示的文字塊中的原始塊進(jìn)行排序從而得到的內(nèi)容重組結(jié)果示意圖;如圖4C所示,為排版方式為無方向豎排的文字塊示意圖;如圖4D所示,為按照上述方法對圖4C所示的文字塊中的原始塊進(jìn)行排序從而得到的內(nèi)容重組結(jié)果示意圖。實(shí)施例二 本實(shí)施例中,文字塊內(nèi)原始塊的排版方式為豎排,對文字塊中的原始塊按照從左到右的豎排、從左到右的豎排進(jìn)行排序,再重組文字塊內(nèi)容;具體排序方法如下步驟11 根據(jù)文字塊內(nèi)各原始塊的序號將文字塊內(nèi)的原始塊進(jìn)行排序;步驟12 依次分別計算文字塊內(nèi)兩相鄰原始塊Blocki和Blockw在水平方向的重
疊度Oy和垂直方向的重疊度Ox ;步驟13 根據(jù)兩相鄰原始塊的左邊界之差和右邊界之差的大小,確定兩相鄰原始塊的前后位置關(guān)系;這里,可以使用Retx表示兩相鄰原始塊的左邊界之差和右邊界之差的大小關(guān)系, 例如,若左邊界之差小于右邊界之差并且所述文字塊內(nèi)原始塊的排版方式為從左到右的豎排,則Retx的取值為-1,兩個相鄰原始塊的前后位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后;若左邊界差值小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的豎排,則Retx的取值為1,兩個相鄰原始塊的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從左到右的豎排,則Retx的取值為1,兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的豎排,則Retx的取值為-1,兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后。步驟14 根據(jù)兩相鄰原始塊的上邊界之差和下邊界之差的大小,確定兩相鄰原始塊的上下位置關(guān)系;這里,可以使用Rety表示兩相鄰原始塊的上邊界之差和下邊界之差的大小關(guān)系, 例如,若上邊界之差小于下邊界之差,則Rety的取值為-1,兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在上,第二個原始塊在下;若上邊界差值不小于下邊界差值,則Rety的取值為1,兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為 兩個相鄰原始塊中的第二個原始塊在上,第一個原始塊在下。步驟15 若兩相鄰原始塊在垂直方向不重疊,即在垂直方向的重疊度小于0,則根據(jù)前后關(guān)系排序;步驟16 若兩相鄰原始塊在水平方向不重疊,即在水平方向的重疊度Oy小于0,則根據(jù)上下位置關(guān)系進(jìn)行排序;步驟17 若兩原始塊在水平和垂直方向均重疊,且重疊度都大于0. 5時,則按照與原始塊的序號進(jìn)行排序;步驟18 若上述條件都沒滿足,則按照重疊度進(jìn)行排序。按照重疊度進(jìn)行排序的方法如下若垂直方向的重疊度小于水平方向的重疊度,則根據(jù)Retx的大小進(jìn)行排序,即若 Retx小于0,則Blocki在前,否則Blocki+1在前;若垂直方向的重疊度不小于水平方向的重疊度,則根據(jù)Rety的大小進(jìn)行排序,即若Rety小于0,則Blocki在前,否則Blocki+1在前。如圖4E所示,為排版方式為從左到右的豎排的文字塊示意圖;如圖4F所示,為按照上述方法對圖4E所示的文字塊中的原始塊進(jìn)行排序從而得到的內(nèi)容重組結(jié)果示意圖。實(shí)施例三本實(shí)施例中,文字塊內(nèi)原始塊的排版方式為橫排式斜排或豎排式斜排,則對文字塊所在的坐標(biāo)系進(jìn)行坐標(biāo)系的旋轉(zhuǎn)變換,根據(jù)原始塊在旋轉(zhuǎn)坐標(biāo)系中的坐標(biāo)位置找到同行的原始塊,再把同行的原始塊按照具體的從左到右或從右到左的排版順序進(jìn)行排序,再重組文字塊內(nèi)容。具體排序方法如下步驟21 根據(jù)文字塊內(nèi)各原始塊的序號將文字塊內(nèi)的原始塊進(jìn)行排序;步驟22 計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值;確定計算得到的出現(xiàn)次數(shù)最多的水平基線差值以及出現(xiàn)次數(shù)最多的垂直基線差值;根據(jù)出現(xiàn)次數(shù)最多的水平基線差值fx和出現(xiàn)次數(shù)最多的垂直基線差值fy,計算斜線的斜率k,即k = fy/
fx;步驟23 根據(jù)斜率k的值計算出坐標(biāo)系旋轉(zhuǎn)角度α,S卩α的正切值為k,計算公 5^ α= arctan (k);注數(shù)學(xué)符號arctanO,其意義為反正切。步驟M 尋找同行的原始塊;將原始塊的水平基線值BaseY。ld和垂直基線值BaseX。ld按照坐標(biāo)旋轉(zhuǎn)公式計算出基線值在旋轉(zhuǎn)后的坐標(biāo)系中的水平基線值BaseYnew和垂直基線值BaseXnew,通過計算CN 102541826 A
BaseYnew同其前一個原始塊的BaseYnew的差值是否小于0. 95倍的原始塊高度尋找同行的原始塊,如果是,則為同行的原始塊,否則為不同行。步驟25 根據(jù)k的絕對值與1的關(guān)系進(jìn)行橫排式斜排和豎排式斜排的行內(nèi)原始塊排序;若k的絕對值不大于1,則排版方式為從左到右的橫排式斜排或從右到左的橫排式斜排,將同行的原始塊按照左邊界值從小到大的方向排序。否則,排版方式為從左到右的豎排式斜排或從右到左的豎排式斜排,將同行的原始塊按照上邊界值從小到大的方向排序。步驟沈若文字塊的行數(shù)大于1,則對行進(jìn)行行間排序,即確定每一行的順序,具體的統(tǒng)計每一行原始塊的序號的平均值,根據(jù)序號平均值的大小按照從小到大的順序?qū)π羞M(jìn)行排序。注坐標(biāo)系旋轉(zhuǎn)數(shù)學(xué)公式為x, = xXcosa+yXsina , y' =-xXsina +yXcosa。在本發(fā)明中,χ,為 BaseXnew,y,為 BaseYnew,χ 為 BaseX。ld,y 為 BaseYoldO如圖4G所示,為排版方式為橫排式斜排的文字塊示意圖;如圖4H所示,為按照上述方法對圖4G所示的文字塊中的原始塊進(jìn)行排序從而得到的內(nèi)容重組結(jié)果示意圖。如圖41所示,為排版方式為豎排式斜排的文字塊示意圖;如圖4J所示,為按照上述方法對圖41所示的文字塊中的原始塊進(jìn)行排序從而得到的內(nèi)容重組結(jié)果示意圖。本發(fā)明實(shí)施例的效果在于采用本發(fā)明所提供的方法,能夠自動化地根據(jù)版式文件的排版方式,建立版面文字的閱讀順序,還原原有的版面內(nèi)容信息。版面文件反解后,人工只需對文章內(nèi)容的閱讀順序進(jìn)行簡單的確認(rèn),提高了反解和標(biāo)引的效率。參見圖5,本發(fā)明實(shí)施例還提供一種文字塊內(nèi)容重組裝置,該裝置包括排序方式確定單元40,用于根據(jù)預(yù)先設(shè)定的排版方式與原始塊排序方式的對應(yīng)關(guān)系,確定文字塊內(nèi)原始塊的排版方式對應(yīng)的原始塊排序方式;原始塊排序單元41,用于按照所述原始塊排序方式對所述文字塊內(nèi)的原始塊進(jìn)行排序;內(nèi)容還原單元42,將排序后的原始塊進(jìn)行輸出顯示。進(jìn)一步,所述原始塊排序單元41具體包括第一排序單元,用于在所述文字塊內(nèi)原始塊的排版方式為橫排或豎排時,根據(jù)所述文字塊內(nèi)各原始塊的序號將所述文字塊內(nèi)的原始塊進(jìn)行排序;排序修正單元,用于對于排序結(jié)果中的每兩個相鄰原始塊執(zhí)行如下步驟計算兩個相鄰原始塊的重疊度,根據(jù)兩個相鄰原始塊的重疊度確定兩個相鄰原始塊的新的位置關(guān)系;若該位置關(guān)系與兩個相鄰原始塊在排序結(jié)果中的位置關(guān)系不同,則將兩個相鄰原始塊在排序結(jié)果中的位置互換。進(jìn)一步,所述排序修正單元具體用于按照如下方式確定兩個相鄰原始塊的新的位置關(guān)系確定兩個相鄰原始塊的前后位置關(guān)系和上下位置關(guān)系;若兩個相鄰原始塊在水平方向的重疊度小于預(yù)先設(shè)置的第一閾值,則根據(jù)兩個相鄰原始塊的上下位置關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系;若兩個相鄰原始塊在垂直方向的重疊度小于0,則根據(jù)兩個相鄰原始塊的前后位置關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系;若兩個相鄰原始塊在水平方向的重疊度和在垂直方向的重疊度都大于預(yù)先設(shè)置的第二閾值,則根據(jù)兩個相鄰原始塊的序號確定兩個相鄰原始塊的新的位置關(guān)系;若兩個相鄰原始塊在垂直方向的重疊度小于在水平方向的重疊度,則根據(jù)兩個相鄰原始塊的左邊界差值和右邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系;若兩個相鄰原始塊在垂直方向的重疊度不小于在水平方向的重疊度,則根據(jù)兩個相鄰原始塊的上邊界差值和下邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系。進(jìn)一步,所述排序修正單元具體用于按照如下方式確定兩個相鄰原始塊的前后位置關(guān)系計算兩個相鄰原始塊的左邊界差值與右邊界差值;若左邊界差值小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從左到右的橫排或從左到右的豎排或無方向豎排,則確定兩個相鄰原始塊的前后位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后;若左邊界差值小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的橫排或從右到左的豎排,則確定兩個相鄰原始塊的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從左到右的橫排或從左到右的豎排或無方向豎排,,則確定該兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的橫排或從右到左的豎排,則確定該兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后。進(jìn)一步,所述排序修正單元具體用于按照如下方式確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系計算兩個相鄰原始塊的上邊界差值與下邊界差值;若上邊界差值小于下邊界差值,則確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在上,第二個原始塊在下;若上邊界差值不小于下邊界差值,則確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第二個原始塊在上,第一個原始塊在下。進(jìn)一步,所述排序修正單元具體用于按照如下方式根據(jù)兩個相鄰原始塊的左邊界差值和右邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系若左邊界差值小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從左到右的橫排或從左到右的豎排,則確定兩個相鄰原始塊的前后位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后;若左邊界差值小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的橫排或從右到左的豎排,則確定兩個相鄰原始塊的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;
若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從左到右的橫排或從左到右的豎排,則確定該兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的橫排或從右到左的豎排,則確定該兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后。進(jìn)一步,所述排序修正單元具體用于按照如下方式根據(jù)兩個相鄰原始塊的上邊界差值和下邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系若上邊界差值小于下邊界差值,則確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在上,第二個原始塊在下;若上邊界差值不小于下邊界差值,則確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第二個原始塊在上,第一個原始塊在下。在所述文字塊內(nèi)原始塊的排版方式為橫排或無方向的豎排、并且兩個相鄰原始塊在文字塊內(nèi)同行時,第一閾值可以在-0. 07與-0. 1之間取值;在所述文字塊內(nèi)原始塊的排版方式為橫排或無方向的豎排、并且兩個相鄰原始塊在文字塊內(nèi)不同行時,第一閾值可以在-0. 03與-0. 06之間取值;在所述文字塊內(nèi)原始塊的排版方式為從左到右或從右到左的豎排時,第一閾值的取值可以為0。第二閾值可以在0.5與1之間取值。進(jìn)一步,所述排序修正單元還用于按照如下方式確定兩個相鄰原始塊在文字塊內(nèi)是否同行比較兩個相鄰原始塊的水平基線值的大小,根據(jù)具有較大水平基線值的原始塊的字號確定行間距大?。挥嬎阍搩蓚€相鄰原始塊的水平基線差值,若水平基線差值大于所述行間距大小, 則確定該兩個相鄰原始塊在文字塊內(nèi)不同行,否則,確定該兩個相鄰原始塊在文字塊內(nèi)同行。進(jìn)一步,所述原始塊排序單元41具體包括第二排序單元,用于在所述文字塊內(nèi)原始塊的排版方式為斜排時,根據(jù)所述文字塊內(nèi)各原始塊的序號將所述文字塊內(nèi)的原始塊進(jìn)行排序;旋轉(zhuǎn)變換單元,用于將所述文字塊所在的坐標(biāo)系進(jìn)行旋轉(zhuǎn)變換;分組單元,用于根據(jù)排序后各原始塊在旋轉(zhuǎn)變換后的坐標(biāo)系中的位置坐標(biāo),將各原始塊進(jìn)行分組,分組后同一組中的原始塊位于同一行或同一列;第三排序單元,用于根據(jù)分組后各組的原始塊序號平均值,將分組后的各組進(jìn)行排序,并且,對于每個分組,根據(jù)所述文字塊的排版方向?qū)⒃摲纸M內(nèi)的原始塊進(jìn)行排序。進(jìn)一步,所述旋轉(zhuǎn)變換單元具體用于計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值;確定計算得到的出現(xiàn)次數(shù)最多的水平基線差值以及出現(xiàn)次數(shù)最多的垂直基線差值;根據(jù)出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,計算斜線的斜率;根據(jù)所述斜率計算坐標(biāo)系旋轉(zhuǎn)角度值;根據(jù)所述坐標(biāo)系旋轉(zhuǎn)角度值,將所述文字塊所在的坐標(biāo)系進(jìn)行旋轉(zhuǎn)變換。進(jìn)一步,所述分組單元具體用于對于排序后的每兩個相鄰原始塊,執(zhí)行如下步驟計算兩個相鄰原始塊中前一原始塊和后一原始塊在旋轉(zhuǎn)變換后的坐標(biāo)系中的水平基線值,確定計算得到的后一原始塊的水平基線值與前一原始塊水平基線值的差值是否小于預(yù)先設(shè)定的第三閾值,若是,則確定前一原始塊和后一原始塊位于同一行,并將前一原始塊和后一原始塊劃分在同一組中;否則,確定前一原始塊和后一原始塊位于不同行,并將前一原始塊和后一原始塊劃分在不同組中。所述第三閾值可以為原始塊高度的0. 91-1倍。進(jìn)一步,所述第三排序單元具體用于按照如下方式根據(jù)所述文字塊的排版方向?qū)⒃摲纸M內(nèi)的原始塊進(jìn)行排序在所述斜率大于1時,確定所述文字塊內(nèi)原始塊的排版方式為豎排式斜排,并將分組內(nèi)的原始塊按照原始塊的上邊界值從小到大的順序進(jìn)行排序;在所述斜率不大于1時,確定所述文字塊內(nèi)原始塊的排版方式為橫排式斜排,并將分組內(nèi)的原始塊按照原始塊的左邊界值從小到大的順序進(jìn)行排序。綜上,本發(fā)明的有益效果包括本發(fā)明實(shí)施例提供的方案中,根據(jù)預(yù)先設(shè)定的排版方式與原始塊排序方式的對應(yīng)關(guān)系,確定文字塊內(nèi)原始塊的排版方式對應(yīng)的原始塊排序方式,然后按照該原始塊排序方式對文字塊內(nèi)的原始塊進(jìn)行排序,并將排序后的原始塊進(jìn)行輸出顯示??梢?,采用本發(fā)明, 能夠?qū)Σ捎靡欢ㄅ虐娣绞降奈淖謮K內(nèi)的原始塊進(jìn)行排序,以還原該文字塊內(nèi)原始塊的閱讀順序。本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實(shí)現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種文字塊內(nèi)容重組方法,其特征在于,該方法包括根據(jù)預(yù)先設(shè)定的排版方式與原始塊排序方式的對應(yīng)關(guān)系,確定文字塊內(nèi)原始塊的排版方式對應(yīng)的原始塊排序方式;按照所述原始塊排序方式對所述文字塊內(nèi)的原始塊進(jìn)行排序; 將排序后的原始塊進(jìn)行輸出顯示。
2.如權(quán)利要求1所述的方法,其特征在于,在所述文字塊內(nèi)原始塊的排版方式為橫排或豎排時,所述原始塊排序方式為根據(jù)所述文字塊內(nèi)各原始塊的序號將所述文字塊內(nèi)的原始塊進(jìn)行排序; 對于排序結(jié)果中的每兩個相鄰原始塊執(zhí)行如下步驟計算兩個相鄰原始塊的重疊度,根據(jù)兩個相鄰原始塊的重疊度確定兩個相鄰原始塊的新的位置關(guān)系;若該位置關(guān)系與兩個相鄰原始塊在排序結(jié)果中的位置關(guān)系不同,則將兩個相鄰原始塊在排序結(jié)果中的位置互換。
3.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)兩個相鄰原始塊的重疊度確定兩個相鄰原始塊的新的位置關(guān)系包括確定兩個相鄰原始塊的前后位置關(guān)系和上下位置關(guān)系;若兩個相鄰原始塊在水平方向的重疊度小于預(yù)先設(shè)置的第一閾值,則根據(jù)兩個相鄰原始塊的上下位置關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系;若兩個相鄰原始塊在垂直方向的重疊度小于0,則根據(jù)兩個相鄰原始塊的前后位置關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系;若兩個相鄰原始塊在水平方向的重疊度和在垂直方向的重疊度都大于預(yù)先設(shè)置的第二閾值,則根據(jù)兩個相鄰原始塊的序號確定兩個相鄰原始塊的新的位置關(guān)系;若兩個相鄰原始塊在垂直方向的重疊度小于在水平方向的重疊度,則根據(jù)兩個相鄰原始塊的左邊界差值和右邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系;若兩個相鄰原始塊在垂直方向的重疊度不小于在水平方向的重疊度,則根據(jù)兩個相鄰原始塊的上邊界差值和下邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系。
4.如權(quán)利要求3所述的方法,其特征在于,根據(jù)兩個相鄰原始塊的左邊界差值和右邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系包括若左邊界差值小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從左到右的橫排或從左到右的豎排或無方向豎排,則確定兩個相鄰原始塊的前后位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后;若左邊界差值小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的橫排或從右到左的豎排,則確定兩個相鄰原始塊的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從左到右的橫排或從左到右的豎排或無方向豎排,則確定該兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第二個原始塊在前,第一個原始塊在后;若左邊界差值不小于右邊界差值并且所述文字塊內(nèi)原始塊的排版方式為從右到左的橫排或從右到左的豎排,則確定該兩個相鄰原始塊在文字塊內(nèi)的前后位置關(guān)系為該兩個相鄰原始塊中的第一個原始塊在前,第二個原始塊在后。
5.如權(quán)利要求3所述的方法,其特征在于,根據(jù)兩個相鄰原始塊的上邊界差值和下邊界差值的大小關(guān)系確定兩個相鄰原始塊的新的位置關(guān)系包括若上邊界差值小于下邊界差值,則確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第一個原始塊在上,第二個原始塊在下;若上邊界差值不小于下邊界差值,則確定兩個相鄰原始塊在文字塊內(nèi)的上下位置關(guān)系為兩個相鄰原始塊中的第二個原始塊在上,第一個原始塊在下。
6.如權(quán)利要求3所述的方法,其特征在于,在所述文字塊內(nèi)原始塊的排版方式為橫排或無方向的豎排、并且確定兩個相鄰原始塊在文字塊內(nèi)同行時,第一閾值在-0. 07與-0. 1 之間取值;在所述文字塊內(nèi)原始塊的排版方式為橫排或無方向的豎排、并且確定兩個相鄰原始塊在文字塊內(nèi)不同行時,第一閾值在-0. 03與-0. 06之間取值;在所述文字塊內(nèi)原始塊的排版方式為從左到右或從右到左的豎排時,第一閾值的取值為0。
7.如權(quán)利要求1所述的方法,其特征在于,在所述文字塊內(nèi)原始塊的排版方式為斜排時,所述原始塊排序方式為根據(jù)所述文字塊內(nèi)各原始塊的序號將所述文字塊內(nèi)的原始塊進(jìn)行排序;將所述文字塊所在的坐標(biāo)系進(jìn)行旋轉(zhuǎn)變換;根據(jù)排序后各原始塊在旋轉(zhuǎn)變換后的坐標(biāo)系中的位置坐標(biāo),將各原始塊進(jìn)行分組,分組后同一組中的原始塊位于同一行或同一列;根據(jù)分組后各組的原始塊序號平均值,將分組后的各組進(jìn)行排序,并且,對于每個分組,根據(jù)所述文字塊的排版方向?qū)⒃摲纸M內(nèi)的原始塊進(jìn)行排序。
8.如權(quán)利要求7所述的方法,其特征在于,將所述文字塊所在的坐標(biāo)系進(jìn)行旋轉(zhuǎn)變換包括計算排序后每兩個相鄰原始塊的水平基線差值和垂直基線差值;確定計算得到的出現(xiàn)次數(shù)最多的水平基線差值以及出現(xiàn)次數(shù)最多的垂直基線差值;根據(jù)出現(xiàn)次數(shù)最多的水平基線差值和出現(xiàn)次數(shù)最多的垂直基線差值,計算斜線的斜率;根據(jù)所述斜率計算坐標(biāo)系旋轉(zhuǎn)角度值;根據(jù)所述坐標(biāo)系旋轉(zhuǎn)角度值,將所述文字塊所在的坐標(biāo)系進(jìn)行旋轉(zhuǎn)變換。
9.如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)排序后各原始塊在旋轉(zhuǎn)變換后的坐標(biāo)系中的位置坐標(biāo),將各原始塊進(jìn)行分組包括對于排序后的每兩個相鄰原始塊,執(zhí)行如下步驟計算兩個相鄰原始塊中前一原始塊和后一原始塊在旋轉(zhuǎn)變換后的坐標(biāo)系中的水平基線值,確定計算得到的后一原始塊的水平基線值與前一原始塊水平基線值的差值是否小于預(yù)先設(shè)定的第三閾值,若是,則確定前一原始塊和后一原始塊位于同一行,并將前一原始塊和后一原始塊劃分在同一組中;否則,確定前一原始塊和后一原始塊位于不同行,并將前一原始塊和后一原始塊劃分在不同組中。
10.如權(quán)利要求7所述的方法,其特征在于,根據(jù)所述文字塊的排版方向?qū)⒃摲纸M內(nèi)的原始塊進(jìn)行排序包括在所述斜率大于1時,確定所述文字塊內(nèi)原始塊的排版方式為豎排式斜排,并將分組內(nèi)的原始塊按照原始塊的上邊界值從小到大的順序進(jìn)行排序;在所述斜率不大于1時,確定所述文字塊內(nèi)原始塊的排版方式為橫排式斜排,并將分組內(nèi)的原始塊按照原始塊的左邊界值從小到大的順序進(jìn)行排序。
11.一種文字塊內(nèi)容重組裝置,其特征在于,該裝置包括排序方式確定單元,用于根據(jù)預(yù)先設(shè)定的排版方式與原始塊排序方式的對應(yīng)關(guān)系,確定文字塊內(nèi)原始塊的排版方式對應(yīng)的原始塊排序方式;原始塊排序單元,用于按照所述原始塊排序方式對所述文字塊內(nèi)的原始塊進(jìn)行排序; 內(nèi)容還原單元,將排序后的原始塊進(jìn)行輸出顯示。
12.如權(quán)利要求11所述的裝置,其特征在于,所述原始塊排序單元包括第一排序單元,用于在所述文字塊內(nèi)原始塊的排版方式為橫排或豎排時,根據(jù)所述文字塊內(nèi)各原始塊的序號將所述文字塊內(nèi)的原始塊進(jìn)行排序;排序修正單元,用于對于排序結(jié)果中的每兩個相鄰原始塊執(zhí)行如下步驟計算兩個相鄰原始塊的重疊度,根據(jù)兩個相鄰原始塊的重疊度確定兩個相鄰原始塊的新的位置關(guān)系; 若該位置關(guān)系與兩個相鄰原始塊在排序結(jié)果中的位置關(guān)系不同,則將兩個相鄰原始塊在排序結(jié)果中的位置互換。
13.如權(quán)利要求11所述的裝置,其特征在于,所述原始塊排序單元包括第二排序單元,用于在所述文字塊內(nèi)原始塊的排版方式為斜排時,根據(jù)所述文字塊內(nèi)各原始塊的序號將所述文字塊內(nèi)的原始塊進(jìn)行排序;旋轉(zhuǎn)變換單元,用于將所述文字塊所在的坐標(biāo)系進(jìn)行旋轉(zhuǎn)變換; 分組單元,用于根據(jù)排序后各原始塊在旋轉(zhuǎn)變換后的坐標(biāo)系中的位置坐標(biāo),將各原始塊進(jìn)行分組,分組后同一組中的原始塊位于同一行或同一列;第三排序單元,用于根據(jù)分組后各組的原始塊序號平均值,將分組后的各組進(jìn)行排序, 并且,對于每個分組,根據(jù)所述文字塊的排版方向?qū)⒃摲纸M內(nèi)的原始塊進(jìn)行排序。
全文摘要
本發(fā)明實(shí)施例公開了一種文字塊內(nèi)容重組方法及裝置,涉及計算機(jī)信息處理領(lǐng)域,用于解決無法對文字塊內(nèi)的原始塊進(jìn)行排序以還原該文字塊內(nèi)原始塊的閱讀順序的問題。本發(fā)明中,根據(jù)預(yù)先設(shè)定的排版方式與原始塊排序方式的對應(yīng)關(guān)系,確定文字塊內(nèi)原始塊的排版方式對應(yīng)的原始塊排序方式,然后按照該原始塊排序方式對文字塊內(nèi)的原始塊進(jìn)行排序,并將排序后的原始塊進(jìn)行輸出顯示。可見,采用本發(fā)明,能夠?qū)Σ捎靡欢ㄅ虐娣绞降奈淖謮K內(nèi)的原始塊進(jìn)行排序,以還原該文字塊內(nèi)原始塊的閱讀順序。
文檔編號G06F17/22GK102541826SQ20101062180
公開日2012年7月4日 申請日期2010年12月27日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者徐劍波, 朱興, 董寧, 黃文娟 申請人:北京方正阿帕比技術(shù)有限公司, 北大方正集團(tuán)有限公司