專利名稱:編碼轉(zhuǎn)換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種編碼轉(zhuǎn)換方法,尤其是應(yīng)用于不同編碼方式的點(diǎn)陣字集間的轉(zhuǎn) 換。
背景技術(shù):
在世界上不同的區(qū)域皆有當(dāng)?shù)赝ㄓ玫奈淖志幋a方式,但這些不同的編碼方式 間,即使是相同的字符,卻常常無法正確地轉(zhuǎn)換為另一種編碼方式(例如日本的JIS, Shift-JIS,大陸的GB2312,臺灣地區(qū)的Big5等),尤其是一些衍生出來的編碼,可能不同的 出版社或者一些公司會常年按照自己的使用需求增補(bǔ)一些編碼。自從Unicode的出現(xiàn)解決了不同區(qū)域的統(tǒng)一編碼問題,使用Unicode作為數(shù)據(jù)編 碼已經(jīng)是一種趨勢。然而目前有不少公司仍擁有一部分早期的產(chǎn)品或數(shù)據(jù)采用非Unicode 編碼,這些產(chǎn)品及數(shù)據(jù)有很高的機(jī)率無法對應(yīng)Unicode完成轉(zhuǎn)換。針對這些無法轉(zhuǎn)換為Unicode的編碼方式,目前常見的作法是以整個字符進(jìn)行全 圖比對。然而,不同的編碼之間,其所采用的字型差異可能相當(dāng)大,雖然采用字型相近的字 集進(jìn)行比對,其比對相當(dāng)不易,再者,圖形符號字符的轉(zhuǎn)換相較于文字字符更是不易。
發(fā)明內(nèi)容
本發(fā)明為解決背景技術(shù)中存在的上述技術(shù)問題,而提出編碼轉(zhuǎn)換方法。本發(fā)明的技術(shù)解決方案是本發(fā)明為一種編碼轉(zhuǎn)換方法,用于不同編碼點(diǎn)陣字集的 辨識及轉(zhuǎn)換,其特殊之處在于該方法包含以下步驟1)讀入第一字集,并選取第一字符;2)讀入第二字集,并選取第二字符;3)獲取屬于第一字符的第一筆劃;4)獲取屬于第二字符的第二筆劃;5)比對第一字符的第一筆劃及第二字符的第二筆劃;6)輸出比對結(jié)果。上述步驟3)和步驟4)中獲取筆劃的具體步驟如下a)在各字符的位圖中,掃描包含各字符的有效點(diǎn)的矩形范圍;b)在矩形范圍中建立二維坐標(biāo);c)將矩形范圍分四個象限;d)根據(jù)由上至下,由左至右的原則,分別獲取各字符的筆劃。上述步驟d)中,根據(jù)由上至下,由左至右的原則是在位圖中,按照至上而下、由左 至右的規(guī)則,由最高及最左點(diǎn)開始作為起點(diǎn)。上述步驟d)中,獲取各筆劃的步驟包括dl)由起點(diǎn)將掃描方向區(qū)分成八個方向上,下,左,右,左上,左下,右上,右下;d2)以起點(diǎn)為中心,沿緊鄰八個方向掃描是否有鄰近點(diǎn),由鄰近點(diǎn)方向推進(jìn)至無連接鄰近點(diǎn);d3)完成筆劃的掃描,記錄筆劃的基本筆劃分類及所在象限位置。上述步驟d2)中當(dāng)掃描時發(fā)現(xiàn)多個鄰近點(diǎn),則朝向原前進(jìn)方向掃描前進(jìn)。上述步驟d)之后還包括步驟e)獲得各筆劃的基本筆劃類型及所在的象限位置。上述步驟5)的具體步驟如下5. 1)建立容許值,界定獲取第一筆劃與第二筆劃始末以及轉(zhuǎn)彎處可容許的雜點(diǎn)數(shù)量;5. 2)忽略雜點(diǎn)而不進(jìn)行比對。上述步驟幻中若第一字符與第二字符相符合,則在步驟6)輸出第二字符作為比 對結(jié)果。上述步驟幻中若第一字符與第二字符不符合,則重新執(zhí)行步驟4)及步驟幻,選取 下一個第二字符進(jìn)行比對。上述第一字符與第二字集比對無相對應(yīng)第二字符,則輸出第一字符至轉(zhuǎn)換錯誤 表。通過本發(fā)明提供的,僅有少數(shù)的第一字符會無法找到對應(yīng)的第二字符,而被記錄 于轉(zhuǎn)換錯誤表。僅有記錄在轉(zhuǎn)換錯誤表的第一字符需要通過人工比對,不需以人工逐字比 對每個第一字符與每個第二字符。根據(jù)本方法產(chǎn)生的編碼轉(zhuǎn)換表,可快速地將以第一字集 記錄的電子數(shù)據(jù),轉(zhuǎn)換為以第二字集記錄的電子數(shù)據(jù)。
圖1為本發(fā)明流程圖2為本發(fā)明八方向筆劃搜尋方法示意圖3為本發(fā)明筆劃獲取方法示意圖(一);
圖4為本發(fā)明筆劃獲取方法示意圖(二);
圖5為本發(fā)明筆劃獲取方法示意圖(三);
圖6為本發(fā)明筆劃獲取方法示意圖(四);
圖7為本發(fā)明筆劃獲取方法示意圖(五);
圖8為本發(fā)明筆劃獲取方法示意圖(六);
圖91為本發(fā)明筆劃比對方法示意圖(一);
圖92為本發(fā)明筆劃比對方法示意圖(二);
圖93為本發(fā)明筆劃比對方法示意圖(三);
圖94為本發(fā)明筆劃比對方法示意圖(四);
圖95為本發(fā)明筆劃比對方法示意圖(五);
圖96為本發(fā)明筆劃比對方法示意圖(六)。
其中,110/120/130/140/150/160-第一字符“機(jī)”的第一筆210/220/'230/240/250/260-第二字符“初”的第二筆劃,310/320/330/340/350/360-第二字符“ 機(jī)”的第二筆劃,122/122/132/142-筆劃起點(diǎn),122/122/132/142-筆劃終點(diǎn);
具體實(shí)施例方式
本發(fā)明應(yīng)用于轉(zhuǎn)換裝置,以進(jìn)行不同編碼字集的辨識及轉(zhuǎn)換?;谧址粓D,該轉(zhuǎn)換裝置比對不同字集中的字符,以找出不同字集中互相對應(yīng)的字符。參見圖1,本發(fā)明利用轉(zhuǎn)換裝置讀入第一字集,并選取第一字符( 印10),接著讀 入第二字集,并選取第二字符(Step 20)。其中第一字集中包含多個第一字符,第二字集中 包含多個第二字符。接著轉(zhuǎn)換裝置從第一字符中獲取屬于第一字符的一個或多個第一筆劃,并獲取第 二字符的一或多個第二筆劃,以根據(jù)第一筆劃及第二筆劃,比對第一字符的第一筆劃及第 二字符的第二筆劃(St印30)。基于方便人們用筆書寫,文字型態(tài)都是基于方便書寫的原則所創(chuàng)造,因此每一個 字符都有其書寫順序,即筆順。漢字書寫順序通常如下先橫后豎、先左后右、先上后下,先 外后里、先撇后捺等基本原則。而漢字的構(gòu)成可以按照邊旁部首拆解,而邊旁部首還可以按 照筆劃肢解?;谇笆龉P順,轉(zhuǎn)換裝置在字符的位圖中,掃描包含字符的有效點(diǎn)的矩形范圍,從 而在該矩形范圍中建立二維坐標(biāo);接著按照二維坐標(biāo)將該矩形范圍分四個象限。依照中文 書寫習(xí)慣“由上至下,由左至右”的原則,依照筆順分別獲取該字符的筆劃。獲取筆劃的原則在于,能一筆書寫下去,不會使用二筆;所有的筆劃構(gòu)成中盡量先 直行后拐彎。所有筆劃一定是按照一個方向或者筆順由起點(diǎn)書寫至終點(diǎn),不會先兩頭后中 間,或由中間朝兩頭書寫。筆劃依據(jù)漢字筆劃原則,可大致分類為下列可一筆連成的基本筆劃
點(diǎn)、圓點(diǎn),長點(diǎn),頓點(diǎn),甩點(diǎn),上挑點(diǎn),短橫點(diǎn),短豎點(diǎn)橫上仰橫,下斜橫,長橫,拱弧橫,短橫豎長豎,短豎,左傾豎,右傾豎,左彎豎,右彎豎撇短撇,長撇捺真捺,直捺,拖尾捺,帶挑捺,回鋒捺挑點(diǎn)挑、斜挑、豎挑、撇挑折圓角折,尖角折,直角折鉤藏鉤,長尾鉤,平鉤,圓鉤依據(jù)上述筆劃分類,轉(zhuǎn)換裝置先辨識各字符中,各筆劃所屬的基本筆劃分類。在找尋第一個筆劃時,在位圖中,按照至上而下、由左至右的規(guī)則,由最高最左點(diǎn) 開始作為第一個起點(diǎn)111,由起點(diǎn)11連續(xù)擴(kuò)展掃描筆劃。筆劃的掃描順序為由上而下、由左 而右、先撇后捺進(jìn)行掃描順序。掃描的重點(diǎn)在于取得每一筆劃所屬的基本筆劃分類及所在 的象限位置,掃描順序依循如圖2的米字型態(tài)。圖2所示為簡體中文“機(jī)”字符的局部示意圖,轉(zhuǎn)換裝置由起點(diǎn)111開始,將掃描方向區(qū)分成8個方向上B,下F,左H,右D,左上A,左下G,右上C,右下E。若以起點(diǎn)111為 中心,8個方向與起點(diǎn)111恰可形成漢字的米字。轉(zhuǎn)換裝置找出起點(diǎn)111之后,以起點(diǎn)111為中心,沿緊鄰八個米字方向掃描是否有 鄰近點(diǎn),如果有則朝向該鄰近點(diǎn)掃描前進(jìn),推進(jìn)至無連接鄰近點(diǎn),即完成該筆劃的掃描,記 錄該筆劃的基本筆劃分類及所在象限位置。若掃描時發(fā)現(xiàn)多個鄰近點(diǎn),朝向原前進(jìn)方向掃 描前進(jìn)。以下以簡體中文“機(jī)”字符,說明每個字符的完整掃描過程。參見圖3所示,轉(zhuǎn)換裝置先找到最左最上的起點(diǎn)111,并得知起點(diǎn)111位于二維坐 標(biāo)中的第二象限。接著轉(zhuǎn)換裝置以起點(diǎn)111為中心,沿緊鄰八個米字方向掃描是否有鄰近 的點(diǎn);如果發(fā)現(xiàn)鄰近點(diǎn),則朝該鄰近點(diǎn)掃描前進(jìn),且在具有多個鄰近點(diǎn)時,以原前進(jìn)方向優(yōu) 先掃描前進(jìn)。因此,圖3可持續(xù)向下沿I方向推進(jìn)至無連接像素,此第一個筆劃101的終點(diǎn) 112在二維坐標(biāo)第三象限,為“丨”筆劃,則完成第一個筆劃101的記錄,紀(jì)錄第一個筆劃101 的基本筆劃分類為“丨”筆劃,所屬象限為第二象限至第三象限。參見圖4所示,回溯到前一“丨”筆劃的掃描歷程中段,在“丨”筆劃的中間位置,其 中一點(diǎn)具有多個鄰近點(diǎn),即對于該點(diǎn)而言,其米字范圍內(nèi)有非向下的掃描方向。按照筆劃從 左到右的順序,優(yōu)先往左相鄰點(diǎn)推進(jìn),找到第二個筆劃102的起點(diǎn)121,其位于二維坐標(biāo)第 二象限。按照筆劃從左到右的順序,往右沿J方向推進(jìn)至終點(diǎn)122,得到第二個筆劃102為 第二象限到第二象限的“一”,完成第二個筆劃102的記錄,紀(jì)錄第二個筆劃102的基本筆劃 分類為“一”筆劃,所屬象限為第二象限至第二象限。參見圖5所示,同樣回溯到前一“丨”筆劃的掃描歷程,回溯到米字范圍內(nèi)下一個 有非向下的像素位置,同樣依據(jù)前述掃描過程找出第三個筆劃的基本筆劃分類為“)”,其 所屬象限位置為第二象限至第三象限。此時依據(jù)所掃描的點(diǎn)發(fā)現(xiàn),因為起點(diǎn)131和終點(diǎn)132 距離筆劃中心不大于2個像素點(diǎn)。此短筆劃在不同的字集中,可能會有位于不同象限的情 況,若依照原字集所得的象限置在另一個字集中搜尋,可能會漏失存在的筆劃,造成比對不 合。因此,對于短筆劃所屬的象限位置,需要抖動假設(shè),加大比對象限位置,上下相鄰的二象 限的組合,皆列為短筆劃所屬的象限位置,因此第三個筆劃103應(yīng)記錄為下列三種可能第 二象限至第二象限的“ j,,;第二象限至第三象限的“ j,,;第三象限至第三象限的“ J ”。參見圖6,同樣回溯到前一“丨”筆劃的掃描歷程,回溯到米字范圍內(nèi)下一個有非向 下的像素位置,同樣依據(jù)前述掃描過程找出第四個筆劃104的基本筆劃分類為“、”。同樣 地,因為起點(diǎn)141和終點(diǎn)142距離筆劃中心不大于2個像素點(diǎn),所以需要抖動假設(shè),將第四 個筆劃記錄為下列三種可能第二象限至第二象限的“、”;第二象限至第三象限的“、”;第 三象限至第三象限的“、”。參見圖7,剩余部分繼續(xù)尋找最左最上點(diǎn),并依據(jù)相鄰位置往下搜尋。找到第五個 筆劃105 第一象限至第三象限的“ J ”。參見圖8,回溯到米字范圍內(nèi)下一個有非向下的像素位置,往非下方的其它方向推 進(jìn),向右方依一筆可能最長連貫原則推進(jìn)至最右,再掃描發(fā)現(xiàn)向下有可推進(jìn)的像素點(diǎn),再繼 續(xù)推進(jìn),依此方法推進(jìn)至無連續(xù)像素點(diǎn)為止,獲取到第六筆第一筆劃106 “乙”。前述筆劃獲取方法,分別對第一字符及第二字符執(zhí)行,取得第一字符的第一筆劃 及第二字符的第二筆劃,之后再比對第一筆劃及第二筆劃(St印30)。
如前所述,不同字集之間采用的字符,會有微小差異,并不會完全相同。特別是在 筆劃的起始點(diǎn)、終點(diǎn)及轉(zhuǎn)彎處常會有裝飾字型用的雜點(diǎn),因此在比對第一字符及第二字符 時,需先建立容許值(St印31),限定筆劃在起始點(diǎn)、終點(diǎn)及轉(zhuǎn)彎處可容許忽略一個像素半 徑內(nèi)的修飾用雜點(diǎn),例如圖9. 1中的第二字符第二筆劃起始點(diǎn)處較第一筆劃多出一個像素 的修飾點(diǎn),因為在容許值范圍內(nèi),故可視兩者為相同筆劃“丨”;同樣地,如圖9. 6中的第一筆 劃與第二筆劃可視為相同筆劃“乙”。接著將此第一字符的第一筆劃與第二字符的第二筆劃逐筆比對(St印30),比對方 法詳述于后。例如第一字符“機(jī)”與第二字符“初”,依筆順逐筆比對。先檢查是否有對等的第二字符(St印40),若有對等的第二字符則輸出第二字符 (Step 41),本實(shí)施例中第二字符帶有裝飾字型用的雜點(diǎn),比對之后發(fā)現(xiàn)第二字符“初”并非 對等的第二字符,接著代入容許值限制再重新比對筆劃(St印42),比對歷程如下說明。參見圖9.1所示,第一個第一筆劃110 “ [ ”依容許值限制與第一個第二筆劃 210 “ [ ”的基本筆劃類型及所屬象限位置相符。參見圖9. 2所示,第二個第一筆劃120 “一”依容許值限制與第二個第二筆劃 220 “一”的基本筆劃類型及所屬象限位置相符。參見圖9. 3所示,第三個第一筆劃130 “ J ”依抖動假設(shè),可以落在三種象限位置, 而其基本筆劃類型為“)”;而第三筆第二筆劃230的基本筆劃類型為“ j ”,且其所屬象限 位置符合前述第三筆第一筆劃130的三種象限位置其中之一,因此第三個第一筆劃110與 第三個第二筆劃相符。參見圖9.4所示,同樣地,依據(jù)抖動假設(shè),,第四個第一筆劃140的基本筆劃類型 “、”及所屬象限位置其中之一與第四個第二筆劃MO的基本筆劃類型“、”及所屬象限位 置相符。參見圖9. 5所示,第五個第一筆劃150與第五個第二筆劃250不相符。由于比對之后發(fā)現(xiàn)第一字符與所指定的第二字符并不相符,因此再檢查第二字集 中的所有第二字符是否已比對完畢(St印43),若已比對完畢此第一字符在第二字集中仍 無找尋到對等的第二字符,則將此第一字符輸出至轉(zhuǎn)換錯誤表(St印44),此轉(zhuǎn)換錯誤表包 含所有無對等第二字符的第一字符,以利執(zhí)行人工校正程序;若尚有未比對的第二字符則 回溯至乂印20讀取下一第二字符并重復(fù)執(zhí)行比對程序,如后段所述。第一字符“機(jī)”與下一個第二字符“機(jī)”,依筆順逐筆比對。先檢查是否有對等的第二字符(St印40),本實(shí)施例中第二字符帶有裝飾字型用 的雜點(diǎn),比對之后發(fā)現(xiàn)第二字符“機(jī)”并非對等的第二字符,接著代入容許值限制再重新比 對筆劃(Step 42)。參見圖9.1所示,第一個第一筆劃110 “ [ ”依容許值限制與第一個第二筆劃 310 “ [ ”的基本筆劃類型及所屬象限位置相符。參見圖9. 2所示,第二個第一筆劃120 “一”依容許值限制與第二個第二筆劃 320 “一”的基本筆劃類型及所屬象限位置相符。參見圖9. 3所示,第三個第一筆劃130 " J ”依容許值限制與第三個第二筆劃 330 “ J ”的基本筆劃類型及所屬象限位置相符。
參見圖9. 4所示,第四個第一筆劃140 “、”依容許值限制與第四個第二筆劃 340 “、,,的基本筆劃類型及所屬象限位置相符。參見圖9. 5所示,第五個第一筆劃150 " J ”依容許值限制與第五個第二筆劃 350 “ J,,的基本筆劃類型及所屬象限位置相符。參見圖9. 6所示,第六個第一筆劃160 “乙”依容許值限制與第六個第二筆劃 360 “乙”的基本筆劃類型及所屬象限位置相符。第一字符中每個第一筆劃皆在第二字符中找到相符合的第二筆劃之后,此第二字 符即為第二字集中與第一字符相應(yīng)的第二字符,將此第二字符輸出(St印41)。最后,檢查第一字集中的所有第一字符是否已比對完畢(St印50),若尚有未比對 的第一字符則讀取下個第一字符并重復(fù)執(zhí)行前述Step 10至Step50筆劃獲取及比對程序。當(dāng)所有第一字符已比對完畢后,即可得到第一字集的第一字符,與第二字集的第 二字符的對應(yīng)關(guān)系,以制作成編碼轉(zhuǎn)換表。通過本發(fā)明步驟,僅有少數(shù)的第一字符會無法找 到對應(yīng)的第二字符,而被記錄于轉(zhuǎn)換錯誤表。僅有記錄在轉(zhuǎn)換錯誤表的第一字符需要通過 人工比對,不需以人工逐字比對每個第一字符與每個第二字符。根據(jù)本方法產(chǎn)生的編碼轉(zhuǎn) 換表,可快速地將以第一字集記錄的電子數(shù)據(jù),轉(zhuǎn)換為以第二字集記錄的電子數(shù)據(jù)。
權(quán)利要求
1.一種編碼轉(zhuǎn)換方法,用于不同編碼點(diǎn)陣字集的辨識及轉(zhuǎn)換,其特征在于該方法包 含以下步驟1)讀入第一字集,并選取第一字符;2)讀入第二字集,并選取第二字符;3)獲取屬于第一字符的第一筆劃;4)獲取屬于第二字符的第二筆劃;5)比對第一字符的第一筆劃及第二字符的第二筆劃;6)輸出比對結(jié)果。
2.根據(jù)權(quán)利要求1所述的一種編碼轉(zhuǎn)換方法,其特征在于所述步驟幻和步驟4)中 獲取筆劃的具體步驟如下a)在各字符的位圖中,掃描包含各字符的有效點(diǎn)的矩形范圍;b)在矩形范圍中建立二維坐標(biāo);c)將矩形范圍分四個象限;d)根據(jù)由上至下,由左至右的原則,分別獲取各字符的筆劃。
3.根據(jù)權(quán)利要求2所述的一種編碼轉(zhuǎn)換方法,其特征在于所述步驟d)中,根據(jù)由上 至下,由左至右的原則是在位圖中,按照至上而下、由左至右的規(guī)則,由最高及最左點(diǎn)開始 作為起點(diǎn)。
4.根據(jù)權(quán)利要求3所述的一種編碼轉(zhuǎn)換方法,其特征在于所述步驟d)中,獲取各筆 劃的步驟包括dl)由起點(diǎn)將掃描方向區(qū)分成八個方向上,下,左,右,左上,左下,右上,右下; d2)以起點(diǎn)為中心,沿緊鄰八個方向掃描是否有鄰近點(diǎn),由鄰近點(diǎn)方向推進(jìn)至無連接鄰 近點(diǎn);d3)完成筆劃的掃描,記錄筆劃的基本筆劃分類及所在象限位置。
5.根據(jù)權(quán)利要求4所述的一種編碼轉(zhuǎn)換方法,其特征在于所述步驟d2)中當(dāng)掃描時 發(fā)現(xiàn)多個鄰近點(diǎn),則朝向原前進(jìn)方向掃描前進(jìn)。
6.根據(jù)權(quán)利要求2或3或4或5所述的一種編碼轉(zhuǎn)換方法,其特征在于所述步驟d) 之后還包括步驟e)獲得各筆劃的基本筆劃類型及所在的象限位置。
7.根據(jù)權(quán)利要求1所述的一種編碼轉(zhuǎn)換方法,其特征在于所述步驟幻的具體步驟如下5. 1)建立容許值,界定獲取第一筆劃與第二筆劃始末以及轉(zhuǎn)彎處可容許的雜點(diǎn)數(shù)量; 5. 2)忽略雜點(diǎn)而不進(jìn)行比對。
8.根據(jù)權(quán)利要求7所述的一種編碼轉(zhuǎn)換方法,其特征在于所述步驟幻中若第一字符 與第二字符相符合,則在步驟6)輸出第二字符作為比對結(jié)果。
9.根據(jù)權(quán)利要求7所述的一種編碼轉(zhuǎn)換方法,其特征在于所述步驟幻中若第一字符 與第二字符不符合,則重新執(zhí)行步驟4)及步驟幻,選取下一個第二字符進(jìn)行比對。
10.根據(jù)權(quán)利要求9所述的一種編碼轉(zhuǎn)換方法,其特征在于所述第一字符與第二字集 比對無相對應(yīng)第二字符,則輸出第一字符至轉(zhuǎn)換錯誤表。
全文摘要
本發(fā)明提供一種編碼轉(zhuǎn)換方法,用于不同編碼點(diǎn)陣字集的辨識及轉(zhuǎn)換。根據(jù)該方法,轉(zhuǎn)換裝置先讀入第一字集,并選取第一字符,接著讀取讀入第二字集,并選取第二字符。之后,轉(zhuǎn)換裝置分別獲取屬于第一字符的第一筆劃及獲取屬于第二字符的第二筆劃。最后,轉(zhuǎn)換裝置比對第一字符的第一筆劃及第二字符的第二筆劃,以確定第一字符及第二字符是否將對應(yīng),以輸出比對結(jié)果。當(dāng)完成所有第一字符比對后,即可制作出第一字符及第二字符對應(yīng)關(guān)系的編碼轉(zhuǎn)換表。
文檔編號G06F17/22GK102096662SQ20101057461
公開日2011年6月15日 申請日期2010年12月6日 優(yōu)先權(quán)日2010年12月6日
發(fā)明者鐘輝, 陳淮琰 申請人:無敵科技(西安)有限公司