本發(fā)明屬于漢字信息處理技術(shù)領(lǐng)域,尤其涉及一種基于漢字的結(jié)構(gòu)和風(fēng)格的字形生成方法。
背景技術(shù):
漢字字形計算系統(tǒng)是信息產(chǎn)業(yè)發(fā)展的基石,三十年前,為了將漢字輸入計算機,國內(nèi)外計算機學(xué)者付出了巨大的勞動,最終在英文單字節(jié)編碼基礎(chǔ)上開發(fā)了雙字節(jié)的漢字信息的表示方法。編碼漢字系統(tǒng)產(chǎn)生于漢字進(jìn)入計算機非常困難的年代,盡管迄今為止,仍然服務(wù)著目前包括未來信息技術(shù)的發(fā)展,但是伴隨著網(wǎng)絡(luò)信息技術(shù)的跨越式發(fā)展,漢字信息處理的環(huán)境已經(jīng)發(fā)生了深刻的變化,傳統(tǒng)的編碼漢字系統(tǒng)在互聯(lián)網(wǎng)時代卻表現(xiàn)出了諸多不足和沒有生機。目前各類計算機系統(tǒng)中的漢字系統(tǒng)是按照一字一碼而進(jìn)行設(shè)計的編碼漢字系統(tǒng),只有在計算機中安裝了某種字形的字庫文件,漢字文檔才能被正確使用,如果漢字文檔使用了計算機中沒有安裝的字形庫,文檔則會顯示亂碼。編碼漢字系統(tǒng)是為信息交換的便利而設(shè)計,但隨著個性化和數(shù)字技術(shù)高度發(fā)展,這種傳統(tǒng)的編碼機制已經(jīng)表現(xiàn)得很不方便。特別是針對中國歷代文字、文獻(xiàn)的數(shù)字化出版問題,目前還不能找到一種有效的解決方案。同時,對于日常漢字的個性化表達(dá),例如,錯字字形的表達(dá)、手書字形的表達(dá)等等都有很大困難。表示方式的不足(1)漢字的筆畫和部件難以輸入。編碼漢字系統(tǒng)中,只有編了碼的文字才可輸入,中華文化源源流長,目前,很多漢字(特別是古文字)尚沒有編碼,更不要說漢字的筆畫和部件了。(2)漢字筆畫難分解。傳統(tǒng)編碼漢字字形中除了楷體字庫中有筆畫的分解信息之外,其它漢字筆畫分解非常困難。(3)漢字錯字難編輯。漢字教學(xué)中,錯字和不規(guī)范字是最基本的教學(xué)元素,但目前的編碼漢字系統(tǒng)卻沒有辦法實現(xiàn),不僅影響了數(shù)字化漢語教學(xué)的發(fā)展,也為自然語言的深度計算研究帶來了困難。(4)漢字個性化難體現(xiàn)。數(shù)字化時代漢字失去了一個非常重要的特征——個性化漢字,盡管可以由字庫開發(fā)商制作個人字體,但實現(xiàn)起來非常困難。編碼方式的不足(1)異體字的編碼問題。漢字編碼解決了漢字的交換問題和常用漢字的數(shù)字化出版問題,但是對異體字和古漢字的編碼非常困難,影響了漢字?jǐn)?shù)字化和信息化技術(shù)的發(fā)展。(2)提筆忘字問題。編碼漢字時代,只要輸入拼音就可以自動引導(dǎo)出漢字,使得漢字的書寫失去了意義。一字一碼,整字編碼是導(dǎo)致“提筆忘字”現(xiàn)象的一個重要因素。(3)個人字庫問題。數(shù)字化的時代,很難再見到“見信如面”的問候方式,不管你在你的個人終端上寫得多么個性,對方收到的短信或微信,一律都要變成“黒”“宋”“楷”“仿” 四張面孔。漢字信息處理技術(shù)研究經(jīng)過幾十年的發(fā)展,已經(jīng)開始從宏觀走向微觀、從通用走向個性化、從規(guī)模處理走向精細(xì)處理階段,在這個變化過程中,越來越多的用戶對個性化的漢字表達(dá)和快速的漢字生成的技術(shù)和方法的需求日益增強。研究更加快捷、方便的漢字生成策略越來越受到人們的重視。例如,在云計算環(huán)境下,原來的單機文件系統(tǒng)已經(jīng)擴展到了網(wǎng)絡(luò)和分布式文件服務(wù)系統(tǒng),信息文檔不再是一種靜態(tài)內(nèi)容和單一版本,而是具有動態(tài)性、時空立體性、多用戶性、多安全等級、多媒體性與多版本性的“活”性文檔。如何對這些“活”結(jié)構(gòu)化的信息和文檔進(jìn)行動態(tài)的表示,是實現(xiàn)漢字信息在云計算服務(wù)時代個性化表示的關(guān)鍵。漢字的個性化表示屬性有很多方面,但最基本的屬性只有兩個,一個是漢字結(jié)構(gòu),另一個是漢字的風(fēng)格,漢字是漢字結(jié)構(gòu)和筆畫風(fēng)格高度融合的藝術(shù),因此個性化的漢字字形研究不僅要研究漢字的結(jié)構(gòu),而且還要研究漢字的風(fēng)格。傳統(tǒng)的信息存儲方式是以結(jié)構(gòu)化文檔的方式(如數(shù)據(jù)庫)進(jìn)行存儲,和此相關(guān)的漢字是以標(biāo)準(zhǔn)的信息編碼形式進(jìn)行計算,這一策略的最大缺點是很難實現(xiàn)對漢字的結(jié)構(gòu)和風(fēng)格進(jìn)行獨立的計算,從結(jié)構(gòu)上分析,漢字不同于英文字母,不僅數(shù)量巨大,而且結(jié)構(gòu)復(fù)雜,生產(chǎn)一套漢字字庫周期長、任務(wù)重,實現(xiàn)個性化表示幾乎不可能。從風(fēng)格上分析,漢字筆畫的書寫變化多端,很難用統(tǒng)一的形式化方法去表達(dá)。近年來,研究學(xué)者一方面從筆畫分解、漢字生成、和筆畫生成等方面進(jìn)行研究分析,另一方面也從漢字的編碼、和漢字的描述技術(shù)等方面進(jìn)行了研究。漢字自動化生成技術(shù)的主要目的一方面是為了解決大量漢字字形的快速生成問題,另一方面是為了解決個性化的計算機書寫問題。綜觀目前常用的漢字字形自動化生技術(shù),漢字的生成技術(shù)概括起來主要分為兩類,一類是基于漢字編碼的靜態(tài)生成方法,另一類是基于漢字描述的動態(tài)生成方法。漢字的靜態(tài)生成方法,是基于現(xiàn)代漢字固定的編碼屬性,以固定的漢字結(jié)構(gòu)對漢字的筆畫和結(jié)構(gòu)進(jìn)行構(gòu)造的漢字計算模型。1)基于部件的拼字方法部件拼字就是利用漢字是由偏旁部首組成的特點,通過設(shè)計少量的漢字筆畫和部件,拼成整個漢字的方法。盡管部件拼字的結(jié)果是一種新字形的動態(tài)組合,但由于筆畫結(jié)構(gòu)的可變性較差,因此也屬于靜態(tài)的漢字生成方法。2)筆畫組字方法是基于不同漢字中筆畫風(fēng)格的不同而分別設(shè)計不同的筆畫來組成不同字體的設(shè)計方法。3)系列字生成法就是將一種風(fēng)格的字根據(jù)需要做成從粗到細(xì)的一系列字庫,以適應(yīng)正文、大小標(biāo)題等不同應(yīng)用。系列字的風(fēng)格相同,只是筆畫的粗細(xì)不同??梢韵茸龀鲎畲趾妥罴?xì)兩款字,然后自動生成中間粗細(xì)的字。上述三種方法固然可以實現(xiàn)部分字形的自動化生成,但基本上都是針對某一字體而言,并且對生成的部件和筆畫的依賴性較大,例如:黑體字可以生成不同的黑變體,隸書體可以生成隸變體,并且在生成質(zhì)量和數(shù)量上還需要做很大的改進(jìn),很多技術(shù)和方法都還處于實驗研究階段。基于描述漢字的動態(tài)生成方法編碼是復(fù)雜對象 的簡單表示,編碼漢字的主要目的是為了信息交換,不適合漢字字形的動態(tài)組合和生成,因此才出現(xiàn)了目前漢字字形設(shè)計效率低下和個性化的漢字難以實現(xiàn)等問題,為了解決這一問題,一些研究學(xué)者開始在編嗎漢字之外通過定義漢字的結(jié)構(gòu)和生成規(guī)則,來動態(tài)的生成漢字,為了和編碼漢字的生成方法相區(qū)別,目前主要的動態(tài)漢字生成方法有以下幾種:1)基于漢字部件和筆畫描述的動態(tài)組字方法基于漢字部件和筆畫描述的動態(tài)組字方法是針對表示信息的漢字?jǐn)?shù)量巨大,漢字的機器組字、組詞效率較低等問題而出現(xiàn)的使用特殊標(biāo)簽將漢字的不同部件和筆畫進(jìn)行表示的方法。代表性的主要有香港浸會大學(xué)提出的Han Glyph、美國加州大學(xué)伯克利分校提出的基于筆畫和漢字部件的字形描述語言CDL(Character Description language)等等。如果將部件描述進(jìn)一步的細(xì)化,就是筆畫描述,這方面Han Glyph和CDL做得非常好,兼顧了部件和筆畫兩種描述方法的組合,將漢字分為控制點、骨架和輪廓等三個層次結(jié)構(gòu),特別受到了漢字學(xué)者的重視,并從多個方面進(jìn)行了擴展,SCML(Structural Character Modeling Language)就是在CDL的基礎(chǔ)上提出的一種將字形和結(jié)構(gòu)融合起來進(jìn)行綜合描述的方法。以組字為目的的漢字部件和筆畫的描述,絕大部分使用數(shù)字標(biāo)簽對漢字的結(jié)構(gòu)進(jìn)行標(biāo)記,其主要目的是要實現(xiàn)漢字智能輸入、和文檔的智能識別。其特點是將漢字的整體結(jié)構(gòu)描述向前推進(jìn)了一步,在筆畫分解、識別和計算方面顯然要優(yōu)于用整字為單位的字詞描述方案。2)以罕用字的表示為目的的漢字字形的筆段描述,筆段描述是將漢字部件描述繼續(xù)細(xì)化的描述方法,這里的筆段是筆畫的子集,它可以是筆畫或筆畫的一部分。在筆段描述方面,在基于筆段的漢字形式化描述方面做了很深的研究工作,提出了基于筆段網(wǎng)格的生僻字、錯字輸入方案。3)以動態(tài)組字和生成字形為目的的筆元描述,筆元是有方向的筆段,它依據(jù)漢字的書寫特性在筆段描述的同時,加入了漢字書寫過程中行筆方向性屬性描述,并且將筆畫或筆段之間的連接點以界點、駐點或勢點進(jìn)行分類描述,使描述過程更加簡潔,更適合漢字(包括各類字體)的字形計算。
以上這些方法存在以下不足:
一是都是基于目前標(biāo)準(zhǔn)的漢字字庫的存儲方案來設(shè)計,沒有解決漢字的云端存儲問題。
二是都是基于漢字的整字結(jié)構(gòu)進(jìn)行設(shè)計,即使個別考慮到了漢字的筆畫和部件,但也是在筆畫結(jié)構(gòu)以上層次進(jìn)行,缺乏對漢字筆畫的深層次解析。
三是以上方案都是基于漢字的信息交換功能進(jìn)行設(shè)計,缺乏對漢字字形的實時動態(tài)生成方案的解決。
四是以上方案缺乏對漢字字體設(shè)計和漢字字形的變換等方面的考慮,特別對漢字字形的風(fēng)格的生成技術(shù)、和基于風(fēng)格的漢字生成技術(shù)沒有提供切實可行的方案。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于漢字的結(jié)構(gòu)和風(fēng)格的字形生成方法,旨在解決漢字的云端存儲、漢字的字體設(shè)計、漢字的動態(tài)生成和漢字結(jié)構(gòu)及風(fēng)格的變換和重建等問題。
本發(fā)明是這樣實現(xiàn)的,一種基于漢字的結(jié)構(gòu)和風(fēng)格的字形生成方法,所述基于漢字的結(jié)構(gòu)和風(fēng)格的字形生成方法基于漢字的編碼與描述將漢字字形概括為靜態(tài)和動態(tài)兩種形式,以基本筆元、組合筆元和擴展筆元為基本描述單位的漢字字形結(jié)構(gòu);建立基于字形結(jié)構(gòu)的漢字動態(tài)生成模型,即基于漢字特征點來生成漢字字形或筆畫風(fēng)格的模型;建立了基于字形結(jié)構(gòu)的漢字筆畫風(fēng)格生成模型。是通過漢字結(jié)構(gòu)或筆畫結(jié)構(gòu)變換后生成與原漢字筆畫或結(jié)構(gòu)不同的字形。
進(jìn)一步,所述將漢字字形分解成結(jié)構(gòu)和風(fēng)格兩個層次,結(jié)構(gòu)層用于服務(wù)器端漢字字形結(jié)構(gòu)的存儲,風(fēng)格層用于在客戶端各類漢字筆畫的生成。
進(jìn)一步,筆元是漢字筆畫的特征點之間、特征點與駐點之間或駐點與駐點之間的一個有方向的線段;設(shè)T(vs,ve)是漢字筆畫的兩個特征點,vz1,vz2…vzn是其中n個駐點,則漢字的筆元表示為:
Y(vzi,vzj);
如果用筆元Y來表示漢字的筆畫,則有:
T(vs,ve)=Y(jié)(vz1,vz2)+Y(vz2,vz3)+……+Y(vzi,vzj)其中,i,j∈{1,2,3,…,n};漢字的筆元集合是特征點集合的一個子集,每一個漢字筆畫中的駐點是隨機的或不確定的,為動態(tài)。z表示駐點數(shù)量,v是表示駐點的坐標(biāo),下標(biāo)i表示駐點的數(shù)量或個數(shù),Y表示筆元,T表示特征點,S表示筆元。
進(jìn)一步,漢字的基本筆元是和組成漢字的基本筆畫相對應(yīng)的筆元,筆元只有兩個特征點,表達(dá)式表示為:
S12=(x1,y1,x2,y2);
除了基本筆元以外,其它的筆畫或部件的組合稱之為組合筆元,表達(dá)式表示為:
CPie=Pie1+Pie2+…+Piei;
擴展筆元是由一個或多個基本筆元和組合筆元而組成的筆元,表達(dá)式擴展表示為:
Ti=﹣Pie;
同樣,漢字的左鉤和右鉤表示為:
RGou=﹣Pie;
LGou=﹣Na。
進(jìn)一步,定義特征點的權(quán)向量實現(xiàn)了點筆畫的動態(tài)生成,通過基本筆元和擴展筆元的定義實現(xiàn)了特殊字形的輸出,針對筆元所描述的稀疏數(shù)據(jù)的插值處理;一個筆元可以定義多個筆元向量,通過增加筆元向量的方法得到多個軛向量,再通過控制多個軛向量的變換產(chǎn)生更多的筆畫風(fēng)格。
進(jìn)一步,所述基本筆元風(fēng)格的生成包括:在一個筆元中增加筆元向量,增加一個筆元向量,得到對應(yīng)的徑向量和軛向量,具體包括:
一個筆元中兩個筆元向量分別是和分別對應(yīng)兩組徑向量分別是和對應(yīng)的軛向量分別是和
進(jìn)一步,所述組合筆元的風(fēng)格生成使用一個和多個筆元向量進(jìn)行風(fēng)格建模。一個筆元向量的建模是對具有單個筆元表示的筆畫建模。多個筆元向量的建模是對具有多個筆元表示的筆畫建模。
進(jìn)一步,所述擴展筆元是由若干個基本筆元和組合筆元而構(gòu)成的筆元,使用基本筆元和組合筆元類似的生成方法來實現(xiàn)風(fēng)格的重建。組合筆元的基本筆元是由兩個特征點組成的筆元,期間的筆元是一直線段,基本的風(fēng)格變換只有位置和大小的變換,而擴展筆元的基本筆元是三點結(jié)構(gòu),因此,除了上述變換方外,還有更多幾何曲線的曲率、幾何曲線的生成方式的變換。
本發(fā)明的另一目的在于提供一種應(yīng)用所述基于漢字的結(jié)構(gòu)和風(fēng)格的字形生成方法的漢字字形計算系統(tǒng)。
本發(fā)明的另一目的在于提供一種應(yīng)用所述基于漢字的結(jié)構(gòu)和風(fēng)格的字形生成方法的計算機。
本發(fā)明提供的基于漢字的結(jié)構(gòu)和風(fēng)格的字形生成方法,將漢字字形抽象為漢字結(jié)構(gòu)和漢字的風(fēng)格兩種模式,并在結(jié)構(gòu)當(dāng)中將漢字筆畫抽象成為連續(xù)的筆元,通過筆元的特征點構(gòu)造筆元向量、徑向量、弦向量和軛向量的方法來進(jìn)行筆畫風(fēng)格的重建,動態(tài)產(chǎn)生了可用于True type個性化漢字字形設(shè)計的字形;實現(xiàn)了漢字字形的Web存儲和在客戶端的特征字形輸出;克服了現(xiàn)代漢字由于漢字?jǐn)?shù)量巨大而在字形設(shè)計方面的不足。為個性化漢字信息的云端存儲 和云端字形服務(wù)提供了一種有效的策略和方法,為設(shè)計更深層次的漢字信息服務(wù)奠定了基礎(chǔ)。
本發(fā)明將基于描述漢字的動態(tài)特性深入探討漢字字形的生成技術(shù),研究新的字形生成算法,為個性化漢字字形服務(wù)奠定理論基礎(chǔ);和傳統(tǒng)的漢字生成技術(shù)相比,基于筆元描述的漢字動態(tài)生成技術(shù)具有以優(yōu)點:
(1)生成漢字的結(jié)構(gòu)可以控制。由于筆元漢字描述庫存儲的是漢字字形的結(jié)構(gòu)信息,因此,對任何字形結(jié)構(gòu)的編輯都十分靈活,包括增加、刪除筆元和駐點的操作。同時可以輸出漢字信息的局部結(jié)構(gòu)和獨立筆畫,使?jié)h字的部件輸入和筆畫輸入成為可能,當(dāng)然也可以實現(xiàn)錯字的計算機輸入和編輯。
(2)生成漢字的風(fēng)格可以控制。優(yōu)美的漢字不僅源于漢字獨特的結(jié)構(gòu)信息,更和形成漢字的各類風(fēng)格密切相關(guān)。通用的生成方法中,要實現(xiàn)漢字從一種筆畫風(fēng)格變換為另一種筆畫風(fēng)格,通常要進(jìn)行非常復(fù)雜的數(shù)字計算,而且效果也不盡滿意,而使用筆元描述漢字則可以得到令人意想不到的效果,可以實現(xiàn)不同字體的生成變換,如宋體可以變換成仿宋,甚至可以變換為黑體。。
(3)個性化漢字的描述易于實現(xiàn)。筆元漢字為個性化的書寫漢字的存儲與表達(dá)找到了一種完美的解決方案。傳統(tǒng)的編碼漢字受編碼唯一性的信息交換原則的限制,不可能實現(xiàn)更多的個性化漢字的表達(dá),而動態(tài)的生成方案可以確?!耙淮a多形”的實現(xiàn)。
(4)方便網(wǎng)絡(luò)存儲和Web服務(wù)。抽象的特征信息和豐富的字形輸出,為漢字的遠(yuǎn)程存儲提供了便利,它不僅實現(xiàn)了漢字信息服務(wù)的個性化和多元化,同時為漢字Web字形和下一代計算機中漢字字形的表達(dá)提供了一種有效的解決方案。
(5)生成漢字效率高、速度快。傳統(tǒng)的漢字設(shè)計每位設(shè)計師一天最多可以設(shè)計幾個或幾十個字,生成一套七千多字的字庫,需要半年甚至幾年的時間。而基于漢字結(jié)構(gòu)和風(fēng)格的生成方法,在算法確定后,幾分鐘即可完成漢字字形的生成。筆元描述實現(xiàn)了漢字設(shè)計的機器生產(chǎn),因此要比其它人工設(shè)計和部首組字等方法的生成效率要高得多。
本發(fā)明基于漢字的編碼技術(shù)與描述技術(shù)將漢字字形的自動化設(shè)計技術(shù)概括為靜態(tài)和動態(tài)兩種形式,提出了一種以基本筆元、組合筆元和擴展筆元為基本描述單位的漢字字形結(jié)構(gòu)的抽象描述方法,建立了基于字形結(jié)構(gòu)的漢字動態(tài)生成模型。建立了基于字形結(jié)構(gòu)的漢字筆畫風(fēng)格生成模型,并對生成效果進(jìn)行分析,得到了有指導(dǎo)意義的結(jié)論。
與現(xiàn)有的漢字生成技術(shù)相比,本發(fā)明提出的動態(tài)生成模型,由于可以實現(xiàn)網(wǎng)絡(luò)和云端存儲,因此可以在用戶端實時生成各類用戶需求的字形,并且是動態(tài)實現(xiàn),達(dá)到了快速生成不同風(fēng)格的漢字字形的目的,為漢字字形的設(shè)計和漢字字形的服務(wù)提供了一種新的思路。
附圖說明
圖1是本發(fā)明實施例提供的漢字結(jié)構(gòu)和風(fēng)格的分解示意圖。
圖2是本發(fā)明實施例提供的漢字字形結(jié)構(gòu)的抽象示意圖。
圖3是本發(fā)明實施例提供的筆畫抽象過程示意圖。
圖4是本發(fā)明實施例提供的手寫漢字筆畫抽象示意圖。
圖5是本發(fā)明實施例提供的筆畫和部件的不同風(fēng)格示意圖。
圖6是本發(fā)明實施例提供的不同字體的不同風(fēng)格示意圖。
圖7是本發(fā)明實施例提供的王選院士楷體字形設(shè)計手稿示意圖。
圖8是本發(fā)明實施例提供的漢字的書寫風(fēng)格示意圖。
圖9是本發(fā)明實施例提供的二維平面內(nèi)的矢量表示示意圖。
圖10是本發(fā)明實施例提供的基向量和徑向量表示示意圖。
圖11是本發(fā)明實施例提供的軛向量表示示意圖。
圖12是本發(fā)明實施例提供的兩個筆元向量表示示意圖。
圖13是本發(fā)明實施例提供的兩個筆元向量的風(fēng)格生成示意圖。
圖14是本發(fā)明實施例提供的擴展筆元的風(fēng)格生成示意圖。
圖15是本發(fā)明實施例提供的漢字生成方法比較示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合具體實施例對本發(fā)明的應(yīng)用原理作進(jìn)一步的描述。
1、漢字的結(jié)構(gòu)和風(fēng)格
從漢字字形應(yīng)用的角度去分析,編碼漢字系統(tǒng)是一種信息交換系統(tǒng),或者說是信息轉(zhuǎn)換系統(tǒng),而不是完整的字形服務(wù)系統(tǒng),因此不能提供更大范圍的字形服務(wù),要解決這一問題,必須擴展現(xiàn)有漢字系統(tǒng)的字形服務(wù)功能,建立一種和漢字字形服務(wù)相適應(yīng)的服務(wù)漢字系統(tǒng),將漢字字形分解成結(jié)構(gòu)和風(fēng)格兩個層次,其中,結(jié)構(gòu)層用于服務(wù)器端漢字字形結(jié)構(gòu)的存儲,風(fēng)格層用于在客戶端各類漢字筆畫的生成。如圖1所示。
1.1漢字的結(jié)構(gòu)
字符是信息表示的基本元素,漢字是一種比較特殊的字符,一般是由基本筆畫按照一定的空間關(guān)系和構(gòu)字規(guī)范構(gòu)成偏旁部首,再進(jìn)一步由偏旁部首根據(jù)一定的間架結(jié)構(gòu)布局構(gòu)成漢字字符,因此,漢字是一種具有層次結(jié)構(gòu)的字符,層結(jié)構(gòu)是漢字的一個基本特征。
(1)漢字結(jié)構(gòu)的抽象
實現(xiàn)漢字結(jié)構(gòu)和風(fēng)格分離的目的是為了將來向用戶提供更大范圍的字形服務(wù)??梢詫⒉煌中纬橄鬄橄嗤蛳嗨频慕Y(jié)構(gòu)。如圖2所示,三個不同字體的“江”字抽象為相同的結(jié)構(gòu)示例。
(2)漢字筆畫的抽象
漢字筆畫的抽象是將一個完整的筆畫抽象為一個或多個二元組的過程。以點筆畫為例,點筆畫的抽象主要包括提取輪廓、確定輪廓特征點、特征點矢量化轉(zhuǎn)換和筆畫矢量提取等幾個步驟。抽象過程如圖3所示。
(3)書寫漢字的抽象
書寫漢字是個性化漢字的最基本表現(xiàn)形式,在線書寫漢字的抽象不僅要抽象漢字的書寫特征,而且還要給出書寫速度、運筆方向和方式等特征的抽象描述,這樣,手寫漢字的筆畫就可以抽象為落筆點、收筆點及行筆過程中的特征點的集合{s,i1,i2……in,e},分析這一特征點的集合就可以抽象出若干個筆元,如圖4所示,是在漢字撇筆畫的特征點集合中抽象出三個筆元的示意圖。
1.2漢字的風(fēng)格
漢字的風(fēng)格是漢字書寫和形成過程中表現(xiàn)出來的個體特色和特征的概括,結(jié)構(gòu)相同的漢字可以有不同的風(fēng)格。漢字風(fēng)格主要是通過筆畫的風(fēng)格、偏旁和部首的風(fēng)格來體現(xiàn)。
(1)漢字筆畫和部件的風(fēng)格
即使是同一字體的標(biāo)準(zhǔn)字形,同一類型的筆畫和部件在不同的漢字中可以有不同的風(fēng)格表現(xiàn),特別是對于標(biāo)準(zhǔn)的印刷字體,這一現(xiàn)象也非常普遍。如圖5所示,同屬于一種筆畫“斜鉤”和同一部件“曰”在不同的漢字中,或者不同的偏旁部首中,都存在一些細(xì)微的變化。
(2)漢字的風(fēng)格
不同筆畫和部件的組合構(gòu)成了不同的漢字風(fēng)格。漢字的風(fēng)格表示十分豐富,目前印刷漢字字體的不同,主要通過風(fēng)格來體現(xiàn)。
圖6所示是微軟美黑、琥珀、仿宋和楷書等四種字體的風(fēng)格示意圖。
漢字的不同風(fēng)格源于不同的字體設(shè)計,這方面已經(jīng)有很多相關(guān)文獻(xiàn)的報道。如圖7所示,是我國方正排版總設(shè)計師王選院士在方正字庫設(shè)計中對楷體字形的風(fēng)格定義。
基于筆畫的漢字計算機自動生成技術(shù),采用和人工設(shè)計漢字字體類似的方法,通過輸入不同的筆畫生成指令來完成筆畫的計算機設(shè)計,然后再根據(jù)漢字的結(jié)構(gòu)對筆畫進(jìn)行組合,從而形成新的漢字字形。
(3)書寫漢字的風(fēng)格
和標(biāo)準(zhǔn)印刷漢字的區(qū)別是漢字的書寫風(fēng)格因人而異,且千變?nèi)f化(圖8)。如何將這些不同的風(fēng)格輸入計算機,讓機器和人一樣有不同的風(fēng)格輸出,這是漢字計算的重要內(nèi)容之一。
為了更好的實現(xiàn)漢字結(jié)構(gòu)和風(fēng)格的描述,在漢字中定義比漢字筆畫更小的描述單位——筆元,并基于筆元,設(shè)計了點筆畫的生成過程和方法。將編碼漢字庫抽象轉(zhuǎn)換為非編碼漢字信息描述庫,克服了目前漢字字庫整字編碼和只能在客戶端文件存儲的不足,實現(xiàn)了基于筆元描述的多級別漢字存儲和云端存儲功能。為漢字的動態(tài)生成和Web服務(wù)奠定了基礎(chǔ)。
2、漢字結(jié)構(gòu)信息的筆元描述
筆元就是有方向的筆段,它保留了筆畫和筆段描述漢字的特點,加入了漢字書寫過程中行筆方向性屬性,并且將筆畫或筆段之間的連接點以界點、駐點或勢點進(jìn)行分類描述,使描述過程更加簡潔,更適合漢字(包括各類字體)的字形計算。
(1)筆元
定義1:筆元是漢字筆畫的特征點之間、特征點與駐點之間或駐點與駐點之間的一個有方向的線段。
設(shè)T(vs,ve)是漢字筆畫的兩個特征點,vz1,vz2…vzn是其中n個駐點,則漢字的筆元可以表示為:
Y(vzi,vzj);
如果用筆元Y來表示漢字的筆畫,則有:
T(vs,ve)=Y(jié)(vz1,vz2)+Y(vz2,vz3)+……+Y(vzi,vzj)其中,i,j∈{1,2,3,…,n};
由以上可以看出,漢字的筆元集合是特征點集合的一個子集。這個集合在漢字字形的空間變換中起著重要的作用。
事實上,每一個漢字筆畫中的駐點是隨機的或不確定的,稱之為動態(tài)的。因此,用筆元描述的漢字是動態(tài)漢字。
(2)基本筆元和組合筆元
漢字的基本筆元是和組成漢字的基本筆畫相對應(yīng)的筆元,這些筆元只有兩個特征點,如表1所示,它的表達(dá)式可以表示為:
S12=(x1,y1,x2,y2);
除了基本筆元以外,其它的筆畫或部件的組合稱之為組合筆元,如表2所示,其表達(dá)式可以表示為:
CPie=Pie1+Pie2+…+Piei;
表1特征點和基本筆元
表2特征點組合筆元
(3)擴展筆元
擴展筆元是由一個或多個基本筆元和組合筆元而組成的筆元,它是更接近漢字部件的筆元。例如,漢字中的提筆畫可以由撇筆畫的表達(dá)式擴展表示為:
Ti=﹣Pie;
同樣,漢字的左鉤和右鉤可以表示為:
RGou=﹣Pie;
LGou=﹣Na;
因此,擴展筆元的表達(dá)式可以表示為如表3所示的特征表達(dá)式。
表3擴展筆元
從字形描述的角度來分析漢字特征,漢字筆畫特征可以分為字形特征和結(jié)構(gòu)特征,字形特征是漢字外觀表征,結(jié)構(gòu)特征是漢字內(nèi)在的表征,漢字特征點的描述中,在漢字筆畫的特征點確定的情況下,增加或減少漢字的描述中的駐點數(shù)量,或者增加或改變漢字的筆元數(shù)量,并不改變漢字或筆畫所包含的結(jié)構(gòu)信息。
3、漢字筆畫風(fēng)格的動態(tài)生成
定義特征點的權(quán)向量實現(xiàn)了點筆畫的動態(tài)生成,通過基本筆元和擴展筆元的定義實現(xiàn)了特殊字形的輸出,其基本原理都是針對筆元所描述的稀疏數(shù)據(jù)的插值處理。以下內(nèi)容將擴展 筆元的定義,詳細(xì)地討論筆元描述在多種類型筆畫變換過程中的可行性。
3.1筆元的矢量分析
為了建立更加規(guī)范的筆元結(jié)構(gòu)數(shù)學(xué)模型,使用特征向量和權(quán)向量固然是一種有效的方法,但是,由于漢字筆畫結(jié)構(gòu)的復(fù)雜性,對包括手寫字形在內(nèi)的特殊字形的筆元描述過程,應(yīng)該對這兩個向量模型進(jìn)行擴展。
空間中的任意物理量都可以分解為互為正交的分量,一旦確定了分量,就可以使用標(biāo)準(zhǔn)的代數(shù)運算對它進(jìn)行計算。以x,y平面內(nèi)的矢量a為例,可以表示為圖9所示:
a=axi+axj;
其中i,j分別表示沿x,y的單位矢量。
例如:一個位置矢量起始于由坐標(biāo)(10,15)定義的點p,終止于坐標(biāo)(-2,5)定義的坐標(biāo)點q,則位置矢量為:
或者表示為:
矢量的大小即是它的長度:
根據(jù)以上分析,給出筆元向量的定義。
定義1:筆元向量;筆元向量是從筆元始結(jié)點出發(fā)且和筆元有相同方向的向量,一個筆元可以有多個筆元向量,每一個筆元向量的模的長度小于或等于筆元的長度。
例如:長度L的筆元,n個筆元向量r1、r2、r3…rn。其模長為|ri|,且:
|ri|<=L;
定義2:單位筆元;和單位向量一樣,單位筆元是具有單位大小的筆元,設(shè)U是單位筆元,則U的分量必須滿足關(guān)系:
其中Ux和Uy分別表示單位筆元在x和y方向上的分量。
由以上兩個定義可以推出如下結(jié)論:
(1)任意一個筆元向量都可以表示成為單位筆元向量的線性組合。
例如:筆元向量rPQ:(-12,-20)和兩個單位筆元向量U1(1,0)與U2(0,1)有如下關(guān)系:
(2)多個筆元向量可以表示成矩陣表達(dá)式。
例如:r1、r2、r3…rn等n個筆元向量可以表示成如下矩陣表達(dá)式:
按照定義1,每一個基本筆元是由始結(jié)點和尾結(jié)點兩個特征點組成筆元向量,這個筆元中還可以有若干個同方向的筆元向量。以橫筆畫的生成為例,設(shè)始結(jié)點a和尾結(jié)點b為兩個特征點,基于特征點a,沿筆元的方向可以建立5個筆元向量,分別為at1,at2,at3,at4和at5,由于這5個筆元向量都源于同一起點,且都在同一個基本筆元上,因此這一組向量稱為基向量?;诿總€基向量,分別建立兩個和基向量夾角為α(0<=α<180)和β(180<β<360)的兩個徑向量ap1和ap1’。每一個基向量都對應(yīng)兩個徑向量,例如,基向量at1對應(yīng)的兩個徑向量t1p1和t1p1’的表示如圖10所示。為了便于理解,下面給出這兩個向量的定義。
定義3:基向量;基本筆元上的筆元向量稱為基向量。基向量始于筆元的始點,且始終和筆元保持同一方向。
例如,圖10中的at1就是筆元ab上的一個基向量。
定義4:徑向量;在每一個基向量的兩側(cè)都可以建立兩個不同方向的向量。這兩個向量和基向量首尾相接,且和基向量有不同的方向。這個向量就稱為徑向量。
每一個基向量都對應(yīng)兩個徑向量,如圖5-2中,基向量at1對應(yīng)的兩個徑向量就是t1p1和t1p1’。
定義5:弦向量;由基向量和徑向量共同組成的向稱為弦向量。在圖10中,弦向量的
表達(dá)式是:
同樣弦向量的表達(dá)式是:
定義軛向量;徑向量和兩個筆元向量正方向的夾角分別為α和,如果α和β關(guān)系滿足下列條件:
(1)α不為0且β不為180
(2)β-α=180
則稱這時的兩個徑向量為軛向量,同一筆元向量的軛向量共線但方向相反。如圖11所示。
3.2筆元的風(fēng)格分析
筆元向量、徑向量、弦向量和軛向量是決定筆元風(fēng)格的重要向量。
以下以Bezier曲線的風(fēng)格變換為例來說明筆元風(fēng)格生成的原理。Bezier曲線表達(dá)式是:
以下以Bezier曲線的風(fēng)格變換為例來說明筆元風(fēng)格生成的原理。Bezier曲線表達(dá)式是:
表達(dá)式中,
k=0,1,…,n
設(shè)二次貝塞爾曲線的三個控制點,為cp[i],其中,i=0,1,2;
取cp[0]=(x1,y1)為筆元的始點,其它兩個點cp[1]、cp[2]的選取方法可以通過建立筆元向量的徑向量或軛向量的方法來取得。設(shè)筆元向量和軛向量的正方向的夾角為α,表5所示是點筆畫在不同的α作用下的不同風(fēng)格示意圖。
表4說明了通過修改筆元向量和軛向量的夾角可以得到不同的點的風(fēng)格。同樣,如果再 修改軛向量的模長,還可以得到相同角度下的另類風(fēng)格。如表5所示。
根據(jù)筆元向量的定義,一個筆元可以定義多個筆元向量,因此,可以通過增加筆元向量的方法得到多個軛向量,再通過控制多個軛向量的變換產(chǎn)生更多的筆畫風(fēng)格。
3.3基本筆元風(fēng)格的生成
基本筆元內(nèi)有始結(jié)點和尾結(jié)點兩個特征點,為了保證稀疏數(shù)據(jù)的穩(wěn)定性,通??梢栽谝粋€筆元中增加筆元向量的方法來實現(xiàn)。增加一個筆元向量,就可以得到對應(yīng)的徑向量和軛向量,不僅增加了未來生成筆畫過程中曲線控制點的數(shù)量,而且還可以實現(xiàn)對筆元的始結(jié)點端和尾結(jié)點端的筆畫風(fēng)格進(jìn)行更加細(xì)微的計算。
設(shè)一個筆元中兩個筆元向量分別是和它們分別對應(yīng)兩組徑向量分別是和 對應(yīng)的軛向量分別是和如圖12所示。
如圖13所示是基于兩個筆元向量的筆元風(fēng)格生成示例。
表2定義了五個基本筆元,分別對每一種基本筆元的風(fēng)格進(jìn)行建模,就會分別得到五種筆畫的風(fēng)格。
3.4組合筆元的風(fēng)格生成
組合筆元的風(fēng)格生成可以選擇和基本筆元類似的解決方案,使用一個和多個筆元向量進(jìn)行風(fēng)格建模。另一方面,和基本筆元相比,由于擴展筆元增加了可以進(jìn)行靈活控制的特征點,因此也可以直接進(jìn)行曲線擬合。如表6所示,是基于五個特征點的Bezier曲線的擬合實例。
表6擴展筆元的曲線擬合
3.5擴展筆元的風(fēng)格生成。
擴展筆元是由若干個基本筆元和組合筆元而構(gòu)成的筆元,因此,可以使用基本筆元和組合筆元類似的生成方法來實現(xiàn)風(fēng)格的重建。
如圖14所示,是基于兩個筆元向量的擴展筆元(Ti)的風(fēng)格生成示意圖。
4、實驗及結(jié)果分析
4.1漢字結(jié)構(gòu)描述及重建實驗
為了驗證這一描述方法在漢字字形結(jié)構(gòu)表示中的性能,分別使用多種不同的字體進(jìn)行了實驗。
基本筆元描述及重建實驗
標(biāo)準(zhǔn)字形比較規(guī)范,適合用基本筆元進(jìn)行描述。選擇標(biāo)準(zhǔn)字形中的黑體字形進(jìn)行了結(jié)構(gòu)描述實驗,實驗中首先對一級黑體漢字字庫中的每一個漢字進(jìn)行基于基本筆元結(jié)構(gòu)的抽象,得到漢字字形描述庫,然后再將漢字描述庫中的每一個字形進(jìn)行漢字結(jié)構(gòu)的重建。表8所示的兩個是得到的實驗結(jié)果示例。
實驗結(jié)果表明了使用基本筆元來描述漢字結(jié)構(gòu)的有效性。
擴展筆元描述及重建實驗。
漢字手寫字形往往結(jié)構(gòu)比較復(fù)雜,如果用基本筆元來描述其結(jié)構(gòu),容易丟失一些重要的個性化特征,因此可以使用擴展筆元描述其結(jié)構(gòu)。
本實驗中,選擇和手寫字形相近的行楷字形進(jìn)行了相關(guān)實驗,同時,為了更好的進(jìn)行比較,仍然使用和基本筆元描述實驗相同的漢字進(jìn)行實驗。表9是得到的實驗結(jié)果。
實驗結(jié)果表了使用擴展筆元描述漢字字形的有效性。
4.2漢字風(fēng)格生成實驗
(1)基本筆元漢字風(fēng)格的生成
在本實驗中,建立了基于2個筆元向量的漢字風(fēng)格的生成系統(tǒng),在系統(tǒng)中通過定義五種基本筆元的軛向量,建立了五種筆元的風(fēng)格模型,其中η1和η2表示兩個軛向量的模長之和,α1和α2表示兩組軛向量與筆元正方向的夾角
如表10所示是根據(jù)兩個軛向量的變化而生成的基本筆元的風(fēng)格示例。
表9基本筆元風(fēng)格模型
表10擴展筆元的風(fēng)格生成
(2)擴展筆元漢字風(fēng)格的生成。
本實驗中,按照三個結(jié)點的組合筆元曲線擬合的風(fēng)格生成方式對擴筆元的風(fēng)格生成進(jìn)行了相關(guān)實驗,表11列出了原始字形和風(fēng)格化后字形的對比示例。
4.3和傳統(tǒng)的生成方法比較
和傳統(tǒng)的漢字生成技術(shù)相比,基于筆元描述的漢字動態(tài)生成技術(shù)具有以優(yōu)點:
(1)生成漢字的結(jié)構(gòu)可以控制。由于筆元漢字描述庫存儲的是漢字字形的結(jié)構(gòu)信息,因此,對任何字形結(jié)構(gòu)的編輯都十分靈活,包括增加、刪除筆元和駐點的操作。同時可以輸出漢字信息的局部結(jié)構(gòu)和獨立筆畫,使?jié)h字的部件輸入和筆畫輸入成為可能,當(dāng)然也可以實現(xiàn)錯字的計算機輸入和編輯。
(2)生成漢字的風(fēng)格可以控制。優(yōu)美的漢字不僅源于漢字獨特的結(jié)構(gòu)信息,更和形成漢字的各類風(fēng)格密切相關(guān)。通用的生成方法中,要實現(xiàn)漢字從一種筆畫風(fēng)格變換為另一種筆畫風(fēng)格,通常要進(jìn)行非常復(fù)雜的數(shù)字計算,而且效果也不盡滿意,而使用筆元描述漢字則可以得到令人意想不到的效果。
(3)個性化漢字的描述易于實現(xiàn)。筆元漢字為個性化的書寫漢字的存儲與表達(dá)找到了一種完美的解決方案。傳統(tǒng)的編碼漢字受編碼唯一性的信息交換原則的限制,不可能實現(xiàn)更多的個性化漢字的表達(dá),而動態(tài)的生成方案可以確?!耙淮a多形”的實現(xiàn)。
(4)方便網(wǎng)絡(luò)存儲和Web服務(wù)。抽象的特征信息和豐富的字形輸出,為漢字的遠(yuǎn)程存儲提供了便利,它不僅實現(xiàn)了漢字信息服務(wù)的個性化和多元化,同時為漢字Web字形和下一代計算機中漢字字形的表達(dá)提供了一種有效的解決方案。
(5)生成漢字效率高、速度快。筆元描述實現(xiàn)了漢字設(shè)計的機器生產(chǎn),因此要比其它人 工設(shè)計和部首組字等方法的生成效率要高得多。
因此,無論從結(jié)枸可變性、風(fēng)格可變性還是字形的服務(wù)和設(shè)計開發(fā)效率等多個方面來分析,基于筆元的漢字字形描述庫是傳統(tǒng)的字形生成方法所無法比擬的。圖15列出了基于筆元的漢字字形描述庫漢字生成方法和其它生成方法的比較結(jié)果。
本發(fā)明基于漢字的編碼技術(shù)與描述技術(shù)將漢字字形的自動化設(shè)計技術(shù)概括為靜態(tài)和動態(tài)兩種形式,提出了一種以基本筆元、組合筆元和擴展筆元為基本描述單位的漢字字形結(jié)構(gòu)的抽象描述方案,建立了基于字形結(jié)構(gòu)的漢字動態(tài)生成模型。建立了基于字形結(jié)構(gòu)的漢字筆畫風(fēng)格生成模型,并對生成效果進(jìn)行分析,得到了有指導(dǎo)意義的結(jié)論。與現(xiàn)有的漢字生成技術(shù)相比,本發(fā)明提出的動態(tài)生成模型,具有實時性和動態(tài)性,以及更好的網(wǎng)絡(luò)存儲和網(wǎng)絡(luò)控制屬性,達(dá)到了快速生成不同風(fēng)格的漢字字形的目的,為漢字字形的設(shè)計和漢字字形的服務(wù)提供了一種新的思路。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。