專利名稱:手寫文字的重心確定方法及電子裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子設(shè)備領(lǐng)域,特別涉及ー種手寫文字的重心確定方法及一種電子裝置。
背景技術(shù):
大多數(shù)平板電腦、掌上電腦(PDA :Personal Digital Assistant)、移動終端等電子設(shè)備除了具備常規(guī)的鍵盤輸入功能以外,還具有手寫輸入功能,手寫輸入的對象(或稱手寫文字)包括漢字、字母、數(shù)字、標(biāo)點、特殊符號等。有些電子設(shè)備能夠?qū)⑹謱懳淖种鹦信帕性陔娮友b置的屏幕上,并且按照原筆跡進(jìn)行顯示,然而這種排列和顯示方式需要考慮文字對齊問題,才能使顯示內(nèi)容看上去錯落有致,美觀而整齊。文字通常具有“重心”的概念,如圖I所示,一行或一列手寫文字中,如果每個手寫文字的重心都落在同一直線上,則文字看起來才會比較整齊,這條直線可被稱為“基線”。為了將一行或者一列手寫文字按照“基線”整齊地排列和顯示,應(yīng)當(dāng)首先確定手寫文字的重心。
發(fā)明內(nèi)容
本申請要解決的主要技術(shù)問題是,提供ー種手寫文字的重心確定方法及一種實現(xiàn)該手寫文字的重心確定方法的電子裝置,便于整齊、美觀地顯示手寫文字。根據(jù)本申請的第一方面,提供了ー種手寫文字的重心確定方法,包括以下步驟密集點陣區(qū)域確定步驟通過掃描字単元的點陣,確定所述字單元的密集點陣區(qū)域;重心確定步驟取所述密集點陣區(qū)域的中心或與所述中心之間具有預(yù)定距離的位置作為所述字単元的重心。一種實施例中,所述密集點陣區(qū)域確定步驟具體包括上邊框確定步驟沿豎直方向逐行掃描所述字單元的點陣的過程中,設(shè)最上方一行的點陣數(shù)為A,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于A吋,將此行所對應(yīng)的水平線作為所述密集點陣區(qū)域的上邊框;下邊框確定步驟沿豎直方向逐行掃描所述字單元的點陣的過程中,設(shè)最下方一行的點陣數(shù)為B,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于B時,將此行所對應(yīng)的水平線作為所述密集點陣區(qū)域的下邊框;左邊框確定步驟沿水平方向逐列掃描所述字單元的點陣的過程中,設(shè)最左邊ー列的點陣數(shù)為C,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于C時,將此列所對應(yīng)的豎直線作為所述密集點陣區(qū)域的左邊框;右邊框確定步驟沿水平方向逐列掃描所述字單元的點陣的過程中,設(shè)最右邊ー列的點陣數(shù)為D,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于D時,將此列所對應(yīng)的豎直線作為所述密集點陣區(qū)域的右邊框;
密集點陣區(qū)域確定步驟取所述上邊框、下邊框、左邊框和右邊框圍合成的矩形作為密集點陣區(qū)域。一種實施例中,所述上邊框確定步驟中所述沿豎直方向是從上至下、所述下邊框確定步驟中所述沿豎直方向是從下至上、所述左邊框確定步驟中所述沿水平方向是從左至右、所述右邊框確定步驟中所述沿水平方向是從右至左,則所述規(guī)定的次數(shù)是第一次;所述上邊框確定步驟中所述沿豎直方向是從下至上、所述下邊框確定步驟中所述沿豎直方向是從上至下、所述左邊框確定步驟中所述沿水平方向是從右至左、所述右邊框確定步驟中所述沿水平方向是從左至右,則所述規(guī)定的次數(shù)是最后一次。一種實施例中,所述密集點陣區(qū)域確定步驟具體包括豎直掃描步驟沿豎直方向逐行掃描所述字單元的點陣,得到所述字單元的總行數(shù),并根據(jù)所述字單元的總點陣數(shù)和總行數(shù),得到所述字單元的每行平均點陣數(shù);密集點陣行確定步驟再次進(jìn)行豎直方向的掃描,當(dāng)所述字單元中連續(xù)多行的平均點陣數(shù)大于所述每行平均點陣數(shù)時,將所述連續(xù)多行作為密集點陣行,并對所述密集點陣行進(jìn)行記錄;水平掃描步驟沿水平方向逐列掃描所述字單元的點陣,得到所述字單元的總列數(shù),并根據(jù)所述字單元的總點陣數(shù)和總列數(shù),得到所述字單元的每列平均點陣數(shù);密集點陣列確定步驟再次進(jìn)行水平方向的掃描,當(dāng)所述字單元中連續(xù)多列的平均點陣數(shù)大于所述每列平均點陣數(shù)時,將所述連續(xù)多列作為密集點陣列,并對所述密集點陣列進(jìn)行記錄;密集點陣區(qū)域確定步驟取所述密集點陣行和密集點陣列上重合區(qū)域作為密集點陣區(qū)域。一種實施例中,所述密集點陣區(qū)域確定步驟具體包括豎直掃描步驟沿豎直方向逐行掃描所述字單元的點陣,記錄所述字單元的總行數(shù)、每行的位置、每行的點陣數(shù),并根據(jù)所述字單元的總點陣數(shù)和總行數(shù),得到所述字單元的每行平均點陣數(shù);密集點陣行確定步驟根據(jù)每行的位置和每行的點陣數(shù),計算連續(xù)多行的平均點陣數(shù),當(dāng)連續(xù)多行的平均點陣數(shù)大于所述每行平均點陣數(shù)時,將所述連續(xù)多行作為密集點陣行,并對所述密集點陣行進(jìn)行記錄;水平掃描步驟沿水平方向逐列掃描所述字單元的點陣,記錄所述字單元的總列數(shù)、每列的位置、每列的點陣數(shù),并根據(jù)所述字單元的總點陣數(shù)和總列數(shù),得到所述字單元的每列平均點陣數(shù);密集點陣列確定步驟根據(jù)每列的位置和每列的點陣數(shù),計算連續(xù)多列的平均點陣數(shù),當(dāng)連續(xù)多列的平均點陣數(shù)大于所述每列平均點陣數(shù)時,將所述連續(xù)多列作為密集點陣列,并對所述密集點陣列進(jìn)行記錄;密集點陣區(qū)域確定步驟取所述密集點陣行和密集點陣列上重合區(qū)域作為密集點陣區(qū)域。一種實施例中,所述字單元的總點陣數(shù)在所述豎直掃描或者水平掃描步驟中獲得。一種實施例中,在所述密集點陣區(qū)域確定步驟之前,還包括字單元拆分步驟當(dāng)接收到的手寫文字為詞組或一組字時,將其拆分成多個單獨的字単元。根據(jù)本發(fā)明的第二方面,本申請保護(hù)了一種實現(xiàn)手寫文字的重心確定方法的電子裝置,包括密集點陣區(qū)域確定單元用于通過對輸入的字單元進(jìn)行逐行掃描和逐列掃描,確定所述字単元的密集點陣區(qū)域;重心確定單元用于取所述密集點陣區(qū)域的中心或與所述中心之間具有預(yù)定距離的位置作為所述字單元的重心。一種實施例中,所述密集點陣區(qū)域確定單元包括上邊框確定模塊用于在沿豎直方向逐行掃描所述字單元的點陣的過程中,設(shè)最上方一行的點陣數(shù)為A,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于A時,將此行所對應(yīng)的水平線作為所述密集點陣區(qū)域的上邊框最上方一行;下邊框確定模塊用于在沿豎直方向逐行掃描所述字單元的點陣的過程中,設(shè)最下方一行的點陣數(shù)為B,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于B吋,將此行所對應(yīng)的水平線作為所述密集點陣區(qū)域的下邊框最上方一行;左邊框確定模塊用于在沿水平方向逐列掃描所述字單元的點陣的過程中,設(shè)最左邊一列的點陣數(shù)為C,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于C時,將此列所對應(yīng)的豎直線作為所述密集點陣區(qū)域的左邊框;右邊框確定模塊用于在沿水平方向逐列掃描所述字單元的點陣的過程中,設(shè)最右邊一列的點陣數(shù)為D,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于D吋,將此列所對應(yīng)的豎直線作為所述密集點陣區(qū)域的右邊框;密集點陣區(qū)域確定模塊用于取所述上邊框、下邊框、左邊框和右邊框圍合成的矩形作為密集點陣區(qū)域。一種實施例中,所述密集點陣區(qū)域確定單元包括豎直掃描模塊用于沿豎直方向逐行掃描所述字單元的點陣,得到所述字單元的總行數(shù),并根據(jù)所述字單元的總點陣數(shù)和總行數(shù),得到所述字單元的每行平均點陣數(shù);密集點陣行確定模塊用于再次進(jìn)行豎直方向的掃描,當(dāng)所述字單元中連續(xù)多行的平均點陣數(shù)大于所述每行平均點陣數(shù)時,將所述連續(xù)多行作為密集點陣行,并對所述密集點陣行進(jìn)行記錄;水平掃描模塊用于沿水平方向逐列掃描所述字單元的點陣,得到所述字單元的總列數(shù),并根據(jù)所述字單元的總點陣數(shù)和總列數(shù),得到所述字單元的每列平均點陣數(shù);密集點陣列確定模塊用于再次進(jìn)行水平方向的掃描,當(dāng)所述字單元中連續(xù)多列的平均點陣數(shù)大于所述每列平均點陣數(shù)時,將所述連續(xù)多列作為密集點陣列,并對所述密集點陣列進(jìn)行記錄;密集點陣區(qū)域確定模塊用于取所述密集點陣行和密集點陣列上重合的區(qū)域作為密集點陣區(qū)域。一種實施例中,所述密集點陣區(qū)域確定單元包括豎直掃描模塊用于沿豎直方向逐行掃描所述字單元的點陣,記錄所述字單元的總行數(shù)、每行的位置、每行的點陣數(shù),并根據(jù)所述字單元的總點陣數(shù)和總行數(shù),得到所述字単元的每行平均點陣數(shù);
7
密集點陣行確定模塊用于根據(jù)每行的位置和每行的點陣數(shù),計算連續(xù)多行的平均點陣數(shù),當(dāng)連續(xù)多行的平均點陣數(shù)大于所述每行平均點陣數(shù)時,將所述連續(xù)多行作為密集點陣行,并對所述密集點陣行進(jìn)行記錄;水平掃描模塊用于沿水平方向逐列掃描所述字單元的點陣,記錄所述字單元的總列數(shù)、每列的位置、每列的點陣數(shù),并根據(jù)所述字單元的總點陣數(shù)和總列數(shù),得到所述字単元的每列平均點陣數(shù);密集點陣列確定模塊用于根據(jù)每列的位置和每列的點陣數(shù),計算連續(xù)多列的平均點陣數(shù),當(dāng)連續(xù)多列的平均點陣數(shù)大于所述每列平均點陣數(shù)時,將所述連續(xù)多列作為密集點陣列,并對所述密集點陣列進(jìn)行記錄;密集點陣區(qū)域確定模塊取所述密集點陣行和密集點陣列上重合區(qū)域作為密集點陣區(qū)域。一種實施例中,還包括字単元拆分單元如果接收到的手寫文字為詞組或ー組字時,用于將其拆分成多個單獨的字単元,再依次通過所述密集點陣區(qū)域確定單元和重心確定單元確定各字単元的重心。本申請的有益效果是本申請?zhí)峁┑氖謱懳淖值闹匦拇_定方法及實現(xiàn)手寫文字的重心確定方法的電子裝置對字單元的重心進(jìn)行確定后,便于手寫文字在編排和顯示過程中使各個字單元的重心落在同一基線上,使文字內(nèi)容的顯示更為整齊美觀。
圖I是手寫輸入文字顯示的編排示意圖;圖2是本申請ー種實施例的字單元的重心確定方法流程圖;圖3為本申請ー種實施例確定的字単元的密集點陣區(qū)域示意圖;圖4為本申請ー種實施例確定的字單元的重心示意圖;圖5是本申請ー種實施例的字単元的密級點陣矩形的確定方法流程圖;圖6是本申請另ー種實施例的字単元的密級點陣矩形的確定方法流程圖;圖7是本申請ー種實施例的電子裝置結(jié)構(gòu)框圖;圖8是本申請另ー種實施例的電子裝置結(jié)構(gòu)框圖。
具體實施例方式下面通過具體實施方式
結(jié)合附圖對本申請作進(jìn)一歩詳細(xì)說明。在本申請實施例中,手寫文字的重心確定方法應(yīng)用于具有手寫輸入功能和原筆跡顯示功能的電子裝置,這些電子裝置可以是平板電腦、PAD和移動電話等。使用過程中每當(dāng)電子裝置接收到用戶輸入的手寫文字時,首先按照本申請各實施例的方式確定手寫文字的重心,接著在編排和顯示過程中使各個字單元的重心落在同一基線上,使文字顯得更加整齊美觀。本申請所述的字単元,是根據(jù)用戶的書寫習(xí)慣及電子裝置的響應(yīng)設(shè)置來定義的。通常情況下,根據(jù)用戶的書寫習(xí)慣,用戶一般會一次性地寫一個標(biāo)點符號、ー個漢字、ー個數(shù)字、ー個字母、ー個特殊符號、一個詞語、一個短語、一句話、一段話等;對應(yīng)地,電子裝置在響應(yīng)時,一般會將ー個標(biāo)點符號、ー個漢字、ー個數(shù)字、ー個字母、ー個特殊符號、ー個詞語、一個短語、一句話、一段話等作為ー個整體進(jìn)行標(biāo)準(zhǔn)字識別及轉(zhuǎn)換、縮放排布等響應(yīng)。于是,本申請中所述的字単元,可以為ー個標(biāo)點符號、ー個漢字、ー個數(shù)字、ー個字母、ー個特殊符號、一個詞語、一個短語、一句話、一段話等,甚至可以為ー個筆劃、偏旁、ー個字及ー些筆劃的組合等。為了便于闡述說明,以下分別以字単元為ー個字、ー組字來進(jìn)行闡述。其中,一個字可以理解為一個標(biāo)點符號、ー個漢字、ー個數(shù)字、ー個字母、ー個特殊符號、一個筆劃或偏旁等;一組字即可理解為一個詞語、一個短語、一句話、一段話等,甚至可以為ー個筆劃、偏旁、一個漢字及ー些筆劃的組合。實施例一請參考圖2,本實施例的手寫文字的重心確定方法包括以下步驟步驟SlOO :密集點陣區(qū)域確定步驟通過掃描字単元的點陣,確定字単元的密集點陣區(qū)域。本實施例提出密集點陣區(qū)域的概念,請參考圖3,顯示了用戶在電子裝置中輸入的字単元“中”所對應(yīng)的密集點陣區(qū)域20,實際上是將字単元中點陣分布相對比較密集的區(qū)域虛擬成的ー個矩形框,并記錄該矩形框的坐標(biāo)位置,便于后續(xù)步驟中利用該矩形框的位置尋找字単元的重心。除了矩形以外,密集點陣區(qū)域還可為圓形、三角形等其它個性化形狀,密集點陣區(qū)域的確定策略也可靈活選擇。步驟SlOl :重心確定步驟取密集點陣區(qū)域20的中心作為字單元的重心,或者還可在中心的附近,取與中心之間具有預(yù)定距離的位置作為字單元的重心,預(yù)定距離根據(jù)具體需要而設(shè)置,不能與中心之間的距離過大。請參考圖4,本實施例中,取密集點陣區(qū)域20的幾何中心點作為字單元“中”的重心10。實施例ニ 請參考圖5,本實施例中,密集點陣區(qū)域確定步驟具體包括以下子步驟步驟S200:豎直掃描步驟沿豎直方向逐行掃描字単元的點陣,得到字単元的總行數(shù)和字単元的總點陣數(shù)。步驟S201 :根據(jù)字單元的總點陣數(shù)和總行數(shù),通過計算,得到字単元的每行平均點陣數(shù)。例如經(jīng)過步驟S200的掃描,得到字単元的總行數(shù)為10行,總點陣數(shù)為100時,字單元的姆行平均點陣數(shù)為10。步驟S202 :密集點陣行確定步驟再次進(jìn)行豎直方向的掃描,當(dāng)字単元中連續(xù)多行的平均點陣數(shù)大于每行平均點陣數(shù)吋,將這些連續(xù)多行作為密集點陣行,并對密集點陣行進(jìn)行記錄。例如字單元的姆行平均點陣數(shù)為10,如果某一行的點陣數(shù)為11,下一行的點陣數(shù)為2,這連續(xù)兩行的平均點陣數(shù)為6. 5,小于10,則這兩行不是密集點陣行;如果某一行的點陣數(shù)為11,下一行的點陣數(shù)為2,再下一行的點陣數(shù)是20,這連續(xù)三行的平均點陣數(shù)為11,大于10,則這三行是密集點陣行;例如一種實施例中,字単元的第三、四、五、六四行的點陣數(shù)相加后除以4得到的平均點陣數(shù)超過10,第三、四、五、六四行是密集點陣行,如果字単元的第三、四、五、六、七五行的點陣數(shù)相加后除以5得到的平均數(shù)小于10,那么第七行不能作為密級點陣行。步驟S203 :水平掃描步驟沿水平方向逐列掃描字単元的點陣,得到字単元的總列數(shù)。步驟S204 :根據(jù)字單元的總點陣數(shù)和總列數(shù),得到字単元的每列平均點陣數(shù),總點陣數(shù)已經(jīng)在步驟S200中得到,當(dāng)然步驟S203中也可再掃描一次,例如字単元的總點陣數(shù)為100,經(jīng)過步驟S203的掃描,得到字単元的總列數(shù)為5行,字単元的每列平均點陣數(shù)為20。步驟S205 :密集點陣列確定步驟再次進(jìn)行水平方向的掃描,當(dāng)字単元中連續(xù)多 列的平均點陣數(shù)大于每列平均點陣數(shù)時,將這些連續(xù)多列作為密集點陣列,并對密集點陣列進(jìn)行記錄。例如字単元的每列平均點陣數(shù)為20,如果某一列的點陣數(shù)為31,下一列的點陣數(shù)為3,這連續(xù)兩列的平均點陣數(shù)為17,小于20,則這兩列不是密集點陣列;如果某一列的點陣數(shù)為31,下一列的點陣數(shù)為4,再下一列的點陣數(shù)是40,這連續(xù)三列的平均點陣數(shù)為25,大于20,則這三列是密集點陣列。步驟S206 :密集點陣區(qū)域確定步驟取密集點陣行和密集點陣列上重合區(qū)域作為密集點陣區(qū)域。實施例三與實施例ニ不同的是,本實施例首先執(zhí)行步驟S203-S205沿水平方向掃描字單元后確定密集點陣列,并在步驟S203的掃描過程中同時得到字単元的總點陣數(shù),再執(zhí)行步驟S200-S202沿豎直方向掃描字單元后確定密集點陣行,最后執(zhí)行步驟S206確定密集點陣區(qū)域。實施例四本實施例密集點陣區(qū)域確定方式類似于實施例ニ和三的方式,只是減少了掃描次數(shù),即通過一次掃描記錄更多的信息,接著直接通過計算,得到密集點陣行或密集點陣列。密集點陣區(qū)域確定步驟具體包括以下步驟首先進(jìn)行豎直掃描步驟沿豎直方向逐行掃描字単元的點陣,記錄字単元的總點陣數(shù)、總行數(shù)、每行的位置、每行的點陣數(shù),井根據(jù)字單元的總點陣數(shù)和總行數(shù),得到字単元的每行平均點陣數(shù);接著確定密集點陣行根據(jù)每行的位置和每行的點陣數(shù),計算連續(xù)多行的平均點陣數(shù),當(dāng)連續(xù)多行的平均點陣數(shù)大于每行平均點陣數(shù)時,將連續(xù)多行作為密集點陣行,并對密集點陣行進(jìn)行記錄;再進(jìn)行水平掃描步驟沿水平方向逐列掃描字単元的點陣,記錄字単元的總列數(shù)、每列的位置、每列的點陣數(shù),井根據(jù)字單元的總點陣數(shù)和總列數(shù),得到字単元的每列平均點陣數(shù);接著確定密集點陣列根據(jù)每列的位置和每列的點陣數(shù),計算連續(xù)多列的平均點陣數(shù),當(dāng)連續(xù)多列的平均點陣數(shù)大于每列平均點陣數(shù)時,將連續(xù)多列作為密集點陣列,并對密集點陣列進(jìn)行記錄;最后確定密集點陣區(qū)域取密集點陣行和密集點陣列上重合區(qū)域作為密集點陣區(qū)域。本實施例中,也可首先執(zhí)行沿水平方向的掃描后確定密集點陣列,并在掃描過程中同時得到字単元的總點陣數(shù),再執(zhí)行豎直方向的掃描后確定密集點陣行,最后確定密集點陣區(qū)域。實施例五請參考圖6,本實施例中,密集點陣區(qū)域確定步驟具體包括以下子步驟
步驟S300 :上邊框確定步驟沿豎直方向逐行掃描字単元的點陣。本實施例的具體掃描方向可根據(jù)具體需要進(jìn)行選擇,例如可從上至下掃描,或者從下至上掃描。步驟S301 :以上掃描過程中,設(shè)最上方一行的點陣數(shù)為A,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于A吋,將此行所對應(yīng)的水平線作為密集點陣區(qū)域的上邊框,記錄該上邊框的坐標(biāo)位置。本實施例中規(guī)定次數(shù)可結(jié)合具體掃描方向并根據(jù)具體情況進(jìn)行設(shè)置,可為電子裝置的出廠設(shè)置也可以由用戶通過用戶界面進(jìn)行自定義設(shè)置。當(dāng)掃描方向是從上至下吋,例如字単元的最上方一行的點陣數(shù)A為3,規(guī)定次數(shù)為第一次時,如果第一次掃描到某一行中點陣數(shù)大于3,則該行所對應(yīng)的水平線作為密集點陣區(qū)域的上邊框,例如規(guī)定次數(shù)為第二次吋,則如果第二次掃描某一行中點陣數(shù)大于3,則該行所對應(yīng)的水平線作為密集點陣區(qū)域的上邊框,當(dāng)然,規(guī)定次數(shù)還可為第三次甚至第三次以上的次數(shù);當(dāng)掃描方向是從下至上時,對定的次數(shù)為最后一次時,如果最后一次掃描到某一行中點陣數(shù)大于3,則該行所對應(yīng)的水平線作為密集點陣區(qū)域的上邊框,例如規(guī)定次數(shù)為倒數(shù)第二次時,如果倒數(shù)第二次掃描某一行中點陣數(shù)大于3,則該行所對應(yīng)的水平線作為密集點陣區(qū)域的上邊框,當(dāng)然,規(guī)定次數(shù)還可為倒數(shù)第三次甚至倒數(shù)第三次以上的次數(shù)。步驟S302 :下邊框確定步驟沿豎直方向逐行掃描字単元的點陣,當(dāng)然在有些ー實施例中,本步驟可省略,下ー步驟S303直接通過步驟S300的掃描結(jié)果而實現(xiàn)。步驟S303 :設(shè)最下方一行的點陣數(shù)為B,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于B時,將此行所對應(yīng)的水平線作為密集點陣區(qū)域的下邊框,記錄該下邊框的坐標(biāo)位置。本步驟中規(guī)定次數(shù)的設(shè)置和用法類似于步驟S 301,區(qū)別僅在于掃描方向的不同。當(dāng)掃描方向是從下至上時,例如字単元的最下方一行的點陣數(shù)B為4,規(guī)定次數(shù)為第一次時,如果第一次掃描到某一行中點陣數(shù)大于4,則該行所對應(yīng)的水平線作為密集點陣區(qū)域的下邊框,例如規(guī)定次數(shù)為第二次吋,則如果第二次掃描某一行中點陣數(shù)大于4,則該行所對應(yīng)的水平線作為密集點陣區(qū)域的下邊框,當(dāng)然,規(guī)定次數(shù)還可為第三次甚至第三次以上的次數(shù);當(dāng)掃描方向是從上至下時,對定的次數(shù)為最后一次時,如果最后一次掃描到某一行中點陣數(shù)大于4,則該行所對應(yīng)的水平線作為密集點陣區(qū)域的下邊框,例如規(guī)定次數(shù)為倒數(shù)第二次時,如果倒數(shù)第二次掃描某一行中點陣數(shù)大于4,則該行所對應(yīng)的水平線作為密集點陣區(qū)域的下邊框,當(dāng)然,規(guī)定次數(shù)還可為倒數(shù)第三次甚至倒數(shù)第三次以上的次數(shù)。步驟S304 :左邊框確定步驟沿水平方向逐行掃描字単元的點陣。本實施例的具體掃描方向可根據(jù)具體需要進(jìn)行選擇,例如可從左至右掃描,或者從右至左掃描。步驟S 305:設(shè)最左邊一列的點陣數(shù)為C,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于C時,將此列所對應(yīng)的豎直線作為密集點陣區(qū)域的左邊框,記錄該左邊框的坐標(biāo)位置。當(dāng)掃描方向是從左至右時,例如字単元的最左邊一列的點陣數(shù)C為5,規(guī)定次數(shù)為第一次時,如果第一次掃描到某一列中點陣數(shù)大于5,則該列所對應(yīng)的豎直線作為密集點陣區(qū)域的左邊框,例如規(guī)定次數(shù)為第二次吋,則如果第二次掃描某一列中點陣數(shù)大于5,則該列所對應(yīng)的豎直線作為密集點陣區(qū)域的左邊框,當(dāng)然,規(guī)定次數(shù)還可為第三次甚至第三次以上的次數(shù);當(dāng)掃描方向是從右至左時,對定的次數(shù)為最后一次時,如果最后一次掃描到某一列中點陣數(shù)大于5,則該列所對應(yīng)的豎直線作為密集點陣區(qū)域的左邊框,例如規(guī)定次數(shù)為倒數(shù)第二次吋,如果倒數(shù)第二次掃描某一列中點陣數(shù)大于5,則該列所對應(yīng)的豎直線作為密集點陣區(qū)域的左邊框,當(dāng)然,規(guī)定次數(shù)還可為倒數(shù)第三次甚至倒數(shù)第三次以上的次數(shù)。
11
步驟S306 :右邊框確定步驟沿水平方向逐行掃描字単元的點陣。當(dāng)然在有些ー實施例中,本步驟可省略,下ー步驟S307通過步驟S304的掃描結(jié)果而實現(xiàn)。步驟S 307 :設(shè)第一列的點陣數(shù)為D,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于D吋,將此列應(yīng)的豎直線作為密集點陣區(qū)域的右邊框,記錄該右邊框的坐標(biāo)位置。本步驟中規(guī)定次數(shù)的設(shè)置和用法類似于步驟S305,區(qū)別僅在于掃描方向的不同。即當(dāng)掃描方向是從右至左時,例如字単元的最右邊一列的點陣數(shù)D為6,規(guī)定次數(shù)為第一次時,如果第一次掃描到某一列中點陣數(shù)大于6,則該列所對應(yīng)的豎直線作為密集點陣區(qū)域的右邊框,例如規(guī)定次數(shù)為第二次吋,則如果第二次掃描某一列中點陣數(shù)大于6,則該列所對應(yīng)的豎直線作為密集點陣區(qū)域的右邊框,當(dāng)然,規(guī)定次數(shù)還可為第三次甚至第三次以上的次數(shù);當(dāng)掃描方向是從左至右時,對定的次數(shù)為最后一次時,如果最后一次掃描到某一列中點陣數(shù)大于6,則該列所對應(yīng)的豎直線作為密集點陣區(qū)域的右邊框,例如規(guī)定次數(shù)為倒數(shù)第二次時,如果倒數(shù)第二次掃描某一列中點陣數(shù)大于6,則該列所對應(yīng)的豎直線作為密集點陣區(qū)域的右邊框,當(dāng)然,規(guī)定次數(shù)還可為倒數(shù)第三次甚至倒數(shù)第三次以上的次數(shù)。步驟S308 :密集點陣區(qū)域確定步驟取以上確定的上邊框、下邊框、左邊框和右邊框圍合成的矩形作為密集點陣區(qū)域。實施例六與實施例五不同的是,本實施例確定密集點陣區(qū)域四個邊框的順序可靈活設(shè)置,例如可首先執(zhí)行步驟S302和步驟S303確定下邊框,再執(zhí)行步驟S300和步驟S301確定上邊框,接著執(zhí)行步驟S306和步驟S307確定右邊框,再執(zhí)行步驟S304和步驟S305確定左邊框,最后確定密集點陣區(qū)域;當(dāng)然其他實施例中,還可通過調(diào)整以上各步驟的順序,首先確定左邊框和右邊框,再確定上邊框和下邊框,最后確定密集點陣區(qū)域。實施例七以上實施例一至實施例六中,在密集點陣區(qū)域確定步驟之前,還可包括字單元拆分步驟如果接收到的手寫文字為詞組或一組字時,將其拆分成多個單獨的字単元,再分別確定各字単元的重心。當(dāng)然,也可根據(jù)具體需要,直接將輸入的詞組或者一組字作為ー個字単元,直接確定該字単元的重心。實施例八如圖7所示,上述實施例的方法的全部或部分步驟可以通過程序來指令相關(guān)硬件完成,通過與硬件的匹配,本例形成一種電子裝置,該電子裝置具有手寫輸入功能和原筆跡顯示功能,應(yīng)用上述實施例的各種方法,實現(xiàn)對手寫輸入的字単元在顯示屏上的顯示。這種裝置可以是平板電腦、PAD和移動電話等。該電子裝置主要包括密集點陣區(qū)域確定單元40 :用于通過對輸入的字單元進(jìn)行逐行掃描和逐列掃描,確定字単元的密集點陣區(qū)域。重心確定單元50 :用于取密集點陣區(qū)域的中心或與中心之間具有一定距離的位置作為字單元的重心。其中,實現(xiàn)上述實施例ニ、三中方法的電子裝置中,密集點陣區(qū)域確定單元40還進(jìn)ー步包括豎直掃描模塊401 :用于沿豎直方向逐行掃描字単元的點陣,得到字単元的總行數(shù),以及根據(jù)字單元的總點陣數(shù)和總行數(shù),得到字単元的每行平均點陣數(shù)。有些實施例中,豎直掃描模塊401掃描得到字単元的總列數(shù)的同時,還得到字単元的總點陣數(shù),并將其直接或間接提供給密集點陣列確定模塊。 密集點陣行確定模塊402 :用于再次進(jìn)行豎直方向的掃描,當(dāng)字単元中連續(xù)多行的平均點陣數(shù)大于每行平均點陣數(shù)吋,將這連續(xù)多行作為密集點陣行,并對密集點陣行進(jìn)行記錄;水平掃描模塊403:用于沿水平方向逐列掃描字単元的點陣,得到字単元的總列數(shù),井根據(jù)字單元的總點陣數(shù)和總列數(shù),得到字単元的每列平均點陣數(shù)。有一些實施例中,豎直掃描模塊401掃描得到字単元的總列數(shù)的同時,還得到字単元的總點陣數(shù),并將其直接或間接提供給密集點陣行確定模塊。密集點陣列確定模塊404:用于再次進(jìn)行水平方向的掃描,當(dāng)字単元中連續(xù)多列的平均點陣數(shù)大于每列平均點陣數(shù)時,將這連續(xù)多列作為密集點陣列,并對密集點陣列進(jìn)行記錄。密集點陣區(qū)域確定模塊405 :取密集點陣行和密集點陣列重合區(qū)域作為密集點陣區(qū)域。本實施例中,還可進(jìn)一歩包括字単元拆分單元如果接收到的手寫文字為詞組或一組字時,用于將其拆分成多個單獨的字単元,再依次通過密集點陣區(qū)域確定單元40和重心確定單元50確定各字單元的重心。實施例九實現(xiàn)上述實施例四中方法的電子裝置中,密集點陣區(qū)域確定單元40包括豎直掃描模塊用于沿豎直方向逐行掃描字単元的點陣,記錄字単元的總行數(shù)、每行的位置、每行的點陣數(shù),井根據(jù)字單元的總點陣數(shù)和總行數(shù),得到字単元的每行平均點陣數(shù)。密集點陣行確定模塊用于根據(jù)每行的位置和每行的點陣數(shù),計算連續(xù)多行的平均點陣數(shù),當(dāng)連續(xù)多行的平均點陣數(shù)大于每行平均點陣數(shù)時,將所述連續(xù)多行作為密集點陣行,并對密集點陣行進(jìn)行記錄;水平掃描模塊用于沿水平方向逐列掃描字単元的點陣,記錄字単元的總列數(shù)、每列的位置、每列的點陣數(shù),井根據(jù)字單元的總點陣數(shù)和總列數(shù),得到字単元的每列平均點陣數(shù);密集點陣列確定模塊用于根據(jù)每列的位置和每列的點陣數(shù),計算連續(xù)多列的平均點陣數(shù),當(dāng)連續(xù)多列的平均點陣數(shù)大于每列平均點陣數(shù)時,將所述連續(xù)多列作為密集點陣列,并對密集點陣列進(jìn)行記錄;密集點陣區(qū)域確定模塊取密集點陣行和密集點陣列重合區(qū)域作為密集點陣區(qū)域。實施例十如圖8所示,與實施例八不同的是,實現(xiàn)上述實施例五、六中方法的電子裝置中,密集點陣區(qū)域確定單元40還進(jìn)ー步包括上邊框確定模塊406 :用于在沿豎直方向逐行掃描字単元的點陣的過程中,設(shè)最上方一行的點陣數(shù)為A,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于A時,將此行所對應(yīng)的水平線作為密集點陣區(qū)域的上邊框。下邊框確定模塊407 :用于在沿豎直方向逐行掃描字単元的點陣的過程中,設(shè)最下方一行的點陣數(shù)為B,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于B吋,將此行所對應(yīng)的水平線作為密集點陣區(qū)域的下邊框。左邊框確定模塊408 :用于在沿水平方向逐列掃描字単元的點陣的過程中,設(shè)最左邊一列的點陣數(shù)為C,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于C時,將此列所對應(yīng)的豎直線作為密集點陣區(qū)域的左邊框。右邊框確定模塊409 :用于在沿水平方向逐列掃描字単元的點陣的過程中,設(shè)最右邊一列的點陣數(shù)為D,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于D吋,將此列所對應(yīng)的豎直線作為密集點陣區(qū)域的右邊框。密集點陣區(qū)域確定模塊410 :用于取上邊框、下邊框、左邊框和右邊框圍合成的矩形作為密集點陣區(qū)域。本實施例中,規(guī)定次數(shù)的設(shè)置和用法與實施例五、六相同。實施例i^ 一 本例是ー計算機(jī)可讀存儲介質(zhì),該存儲介質(zhì)可以包括只讀存儲器、隨機(jī)存儲器、磁盤或光盤等。該計算機(jī)可讀存儲介質(zhì)中,存儲有程序,該程序通過被相關(guān)硬件加載運行,可實現(xiàn)上述實施例中各種方法的全部或部分步驟。以上內(nèi)容是結(jié)合具體的實施方式對本申請所作的進(jìn)ー步詳細(xì)說明,不能認(rèn)定本申請的具體實施只局限于這些說明。對于本申請所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本申請的保護(hù)范圍。
1權(quán)利要求
1.ー種手寫文字的重心確定方法,其特征在于,包括以下步驟 密集點陣區(qū)域確定步驟通過掃描字単元的點陣,確定所述字單元的密集點陣區(qū)域;重心確定步驟取所述密集點陣區(qū)域的中心或與所述中心之間具有預(yù)定距離的位置作為所述字單元的重心。
2.如權(quán)利要求I所述的方法,其特征在于,所述密集點陣區(qū)域確定步驟具體包括 上邊框確定步驟沿豎直方向逐行掃描所述字單元的點陣的過程中,設(shè)最上方一行的點陣數(shù)為A,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于A時,將此行所對應(yīng)的水平線作為所述密集點陣區(qū)域的上邊框; 下邊框確定步驟沿豎直方向逐行掃描所述字單元的點陣的過程中,設(shè)最下方一行的點陣數(shù)為B,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于B吋,將此行所對應(yīng)的水平線作為所述密集點陣區(qū)域的下邊框; 左邊框確定步驟沿水平方向逐列掃描所述字單元的點陣的過程中,設(shè)最左邊一列的點陣數(shù)為C,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于C時,將此列所對應(yīng)的豎直線作為所述密集點陣區(qū)域的左邊框; 右邊框確定步驟沿水平方向逐列掃描所述字單元的點陣的過程中,設(shè)最右邊一列的點陣數(shù)為D,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于D時,將此列所對應(yīng)的豎直線作為所述密集點陣區(qū)域的右邊框; 密集點陣區(qū)域確定步驟取所述上邊框、下邊框、左邊框和右邊框圍合成的矩形作為密集點陣區(qū)域。
3.如權(quán)利要求2所述的方法,其特征在于,所述上邊框確定步驟中所述沿豎直方向是從上至下、所述下邊框確定步驟中所述沿豎直方向是從下至上、所述左邊框確定步驟中所述沿水平方向是從左至右、所述右邊框確定步驟中所述沿水平方向是從右至左,則所述規(guī)定的次數(shù)是第一次; 所述上邊框確定步驟中所述沿豎直方向是從下至上、所述下邊框確定步驟中所述沿豎直方向是從上至下、所述左邊框確定步驟中所述沿水平方向是從右至左、所述右邊框確定步驟中所述沿水平方向是從左至右,則所述規(guī)定的次數(shù)是最后一次。
4.如權(quán)利要求I所述的方法,其特征在于,所述密集點陣區(qū)域確定步驟具體包括 豎直掃描步驟沿豎直方向逐行掃描所述字單元的點陣,得到所述字單元的總行數(shù),并根據(jù)所述字単元的總點陣數(shù)和總行數(shù),得到所述字單元的每行平均點陣數(shù); 密集點陣行確定步驟再次進(jìn)行豎直方向的掃描,當(dāng)所述字單元中連續(xù)多行的平均點陣數(shù)大于所述每行平均點陣數(shù)時,將所述連續(xù)多行作為密集點陣行,并對所述密集點陣行進(jìn)行記錄; 水平掃描步驟沿水平方向逐列掃描所述字單元的點陣,得到所述字單元的總列數(shù),并根據(jù)所述字単元的總點陣數(shù)和總列數(shù),得到所述字單元的每列平均點陣數(shù); 密集點陣列確定步驟再次進(jìn)行水平方向的掃描,當(dāng)所述字單元中連續(xù)多列的平均點陣數(shù)大于所述每列平均點陣數(shù)時,將所述連續(xù)多列作為密集點陣列,并對所述密集點陣列進(jìn)行記錄; 密集點陣區(qū)域確定步驟取所述密集點陣行和密集點陣列上重合區(qū)域作為密集點陣區(qū)域。2
5.如權(quán)利要求I所述的方法,其特征在于,所述密集點陣區(qū)域確定步驟具體包括 豎直掃描步驟沿豎直方向逐行掃描所述字單元的點陣,記錄所述字單元的總行數(shù)、每行的位置、每行的點陣數(shù),并根據(jù)所述字單元的總點陣數(shù)和總行數(shù),得到所述字單元的每行平均點陣數(shù); 密集點陣行確定步驟根據(jù)每行的位置和每行的點陣數(shù),計算連續(xù)多行的平均點陣數(shù),當(dāng)連續(xù)多行的平均點陣數(shù)大于所述每行平均點陣數(shù)時,將所述連續(xù)多行作為密集點陣行,并對所述密集點陣行進(jìn)行記錄; 水平掃描步驟沿水平方向逐列掃描所述字單元的點陣,記錄所述字單元的總列數(shù)、每列的位置、每列的點陣數(shù),并根據(jù)所述字單元的總點陣數(shù)和總列數(shù),得到所述字單元的每列平均點陣數(shù); 密集點陣列確定步驟根據(jù)每列的位置和每列的點陣數(shù),計算連續(xù)多列的平均點陣數(shù),當(dāng)連續(xù)多列的平均點陣數(shù)大于所述每列平均點陣數(shù)時,將所述連續(xù)多列作為密集點陣列,并對所述密集點陣列進(jìn)行記錄; 密集點陣區(qū)域確定步驟取所述密集點陣行和密集點陣列上重合區(qū)域作為密集點陣區(qū)域。
6.如權(quán)利要求4或5所述的方法,其特征在于,所述字單元的總點陣數(shù)在所述豎直掃描或者水平掃描步驟中獲得。
7.如權(quán)利要求1-5中任一項所述的方法,其特征在于,在所述密集點陣區(qū)域確定步驟之前,還包括字單元拆分步驟當(dāng)接收到的手寫文字為詞組或一組字時,將其拆分成多個單獨的字單元。
8.一種實現(xiàn)手寫文字的重心確定方法的電子裝置,其特征在于,包括 密集點陣區(qū)域確定單元用于通過對輸入的字單元進(jìn)行逐行掃描和逐列掃描,確定所述字單元的密集點陣區(qū)域; 重心確定單元用于取所述密集點陣區(qū)域的中心或與所述中心之間具有預(yù)定距離的位置作為所述字單元的重心。
9.如權(quán)利要求8所述的電子裝置,其特征在于,所述密集點陣區(qū)域確定單元包括 上邊框確定模塊用于在沿豎直方向逐行掃描所述字單元的點陣的過程中,設(shè)最上方一行的點陣數(shù)為A,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于A吋,將此行所對應(yīng)的水平線作為所述密集點陣區(qū)域的上邊框最上方一行; 下邊框確定模塊用于在沿豎直方向逐行掃描所述字單元的點陣的過程中,設(shè)最下方一行的點陣數(shù)為B,按規(guī)定次數(shù)掃描到的行的點陣數(shù)大于B時,將此行所對應(yīng)的水平線作為所述密集點陣區(qū)域的下邊框最上方一行; 左邊框確定模塊用于在沿水平方向逐列掃描所述字單元的點陣的過程中,設(shè)最左邊一列的點陣數(shù)為C,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于C時,將此列所對應(yīng)的豎直線作為所述密集點陣區(qū)域的左邊框; 右邊框確定模塊用于在沿水平方向逐列掃描所述字單元的點陣的過程中,設(shè)最右邊一列的點陣數(shù)為D,按規(guī)定次數(shù)掃描到的列的點陣數(shù)大于D時,將此列所對應(yīng)的豎直線作為所述密集點陣區(qū)域的右邊框; 密集點陣區(qū)域確定模塊用于取所述上邊框、下邊框、左邊框和右邊框圍合成的矩形作為密集點陣區(qū)域。
10.如權(quán)利要求8所述的電子裝置,其特征在于,所述密集點陣區(qū)域確定單元包括 豎直掃描模塊用于沿豎直方向逐行掃描所述字單元的點陣,得到所述字單元的總行數(shù),并根據(jù)所述字單元的總點陣數(shù)和總行數(shù),得到所述字單元的每行平均點陣數(shù); 密集點陣行確定模塊用于再次進(jìn)行豎直方向的掃描,當(dāng)所述字單元中連續(xù)多行的平均點陣數(shù)大于所述每行平均點陣數(shù)時,將所述連續(xù)多行作為密集點陣行,并對所述密集點陣行進(jìn)行記錄; 水平掃描模塊用于沿水平方向逐列掃描所述字單元的點陣,得到所述字單元的總列數(shù),并根據(jù)所述字單元的總點陣數(shù)和總列數(shù),得到所述字單元的每列平均點陣數(shù); 密集點陣列確定模塊用于再次進(jìn)行水平方向的掃描,當(dāng)所述字單元中連續(xù)多列的平均點陣數(shù)大于所述每列平均點陣數(shù)時,將所述連續(xù)多列作為密集點陣列,并對所述密集點陣列進(jìn)行記錄; 密集點陣區(qū)域確定模塊用于取所述密集點陣行和密集點陣列上重合的區(qū)域作為密集點陣區(qū)域。
11.如權(quán)利要求8所述的電子裝置,其特征在于,所述密集點陣區(qū)域確定單元包括 豎直掃描模塊用于沿豎直方向逐行掃描所述字單元的點陣,記錄所述字單元的總行數(shù)、每行的位置、每行的點陣數(shù),并根據(jù)所述字單元的總點陣數(shù)和總行數(shù),得到所述字單元的每行平均點陣數(shù); 密集點陣行確定模塊用于根據(jù)每行的位置和每行的點陣數(shù),計算連續(xù)多行的平均點陣數(shù),當(dāng)連續(xù)多行的平均點陣數(shù)大于所述每行平均點陣數(shù)時,將所述連續(xù)多行作為密集點陣行,并對所述密集點陣行進(jìn)行記錄; 水平掃描模塊用于沿水平方向逐列掃描所述字單元的點陣,記錄所述字單元的總列數(shù)、每列的位置、每列的點陣數(shù),并根據(jù)所述字單元的總點陣數(shù)和總列數(shù),得到所述字單元的每列平均點陣數(shù); 密集點陣列確定模塊用于根據(jù)每列的位置和每列的點陣數(shù),計算連續(xù)多列的平均點陣數(shù),當(dāng)連續(xù)多列的平均點陣數(shù)大于所述每列平均點陣數(shù)時,將所述連續(xù)多列作為密集點陣列,并對所述密集點陣列進(jìn)行記錄;密集點陣區(qū)域確定模塊取所述密集點陣行和密集點陣列上重合區(qū)域作為密集點陣區(qū)域。
12.如權(quán)利要求8-11中任一項所述的電子裝置,其特征在于,還包括字単元拆分單元如果接收到的手寫文字為詞組或一組字時,用于將其拆分成多個單獨的字単元,再依次通過所述密集點陣區(qū)域確定單元和重心確定單元確定各字単元的重心。
全文摘要
本發(fā)明公開了一種手寫文字的重心確定方法及一種實現(xiàn)該手寫文字的重心確定方法的電子裝置,手寫文字的重心確定方法包括以下步驟密集點陣區(qū)域確定步驟通過掃描字單元的點陣,確定所述字單元的密集點陣區(qū)域;重心確定步驟取所述密集點陣區(qū)域的中心或與所述中心之間具有預(yù)定距離的位置作為所述字單元的重心。通過本發(fā)明對字單元的重心進(jìn)行確定后,便于手寫文字在編排和顯示過程中使各個字單元的重心落在同一基線上,使文字內(nèi)容的顯示更為整齊美觀。
文檔編號G06K9/32GK102915439SQ20121030169
公開日2013年2月6日 申請日期2012年8月22日 優(yōu)先權(quán)日2012年8月22日
發(fā)明者賀照云, 韓澍青, 周佳, 杜國楹 申請人:北京壹人壹本信息科技有限公司