国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

啟體書法字的矢量化

2010-06-05 06:31武仲科敖雪峰周明全
中文信息學(xué)報 2010年6期
關(guān)鍵詞:矢量化鏈表角點

曹 芳,武仲科,敖雪峰,周明全

(北京師范大學(xué) 虛擬現(xiàn)實和可視化技術(shù)研究所,北京 100875)

1 引言

隨著計算機圖形圖像技術(shù)的深入發(fā)展,其應(yīng)用范圍不斷擴大。中國傳統(tǒng)書法的展示和研究臨摹需要大量現(xiàn)有優(yōu)秀書畫作品的傳播作為基礎(chǔ),因此這些作品的電子化以及電子化后的二次開發(fā)都意義重大,對中國優(yōu)秀傳統(tǒng)文化的繼承與發(fā)展起到重要的推進作用。

計算機對于圖形的表示可以分為兩大類:矢量圖和位圖。位圖在表達清晰復(fù)雜的圖像信息時有著優(yōu)越的功能,但其占用大量存儲空間,使得應(yīng)用受到了限制。矢量圖使用圖形的元素點、線、矩形、多邊形、圓和弧線等表達圖形信息,而它們都是通過數(shù)學(xué)公式計算獲得的,因此便于去除多余信息,所以矢量圖形文件體積一般較小,無論放大、縮小或旋轉(zhuǎn)等不會失真。這在表達書法字筆畫問題上有很好的借鑒作用。

隨著計算機技術(shù)的發(fā)展,大量的書法作品被掃描入計算機,作為光柵圖像的文件存儲占用大量空間,并且在進行變換時會產(chǎn)生失真,尤其是經(jīng)放大后,字的邊界會出現(xiàn)鋸齒狀。因此更好的方式是將它們轉(zhuǎn)化為邊界輪廓表示的矢量圖形。矢量書法字存儲小,可以方便快速地進行各種變換,實現(xiàn)高質(zhì)量的顯示和輸出。同時矢量書法字便于對數(shù)字化書法文檔的搜索,書法字的識別,書法文檔的壓縮和書法學(xué)習(xí)的應(yīng)用[1]。因此其可以廣泛應(yīng)用于排版,動畫和CAD等領(lǐng)域,具有非常好的應(yīng)用前景。

在中國書法字的相關(guān)研究中,大量華人聚集的馬來西亞,中國的香港科技大學(xué),臺灣交通大學(xué),和內(nèi)地的浙江大學(xué)等都走在業(yè)內(nèi)前列。他們的研究主要集中在傳統(tǒng)毛筆的電子化仿真模擬[2],筆跡的藝術(shù)再現(xiàn)[2],單一書法字的電子化處理,比如書法字的矢量化和矢量輪廓的平滑[3],以及書法字的數(shù)字化應(yīng)用[4]等方面,都取得了令人矚目的成績。但在書法字矢量化相關(guān)研究中,大量研究處于理論階段,實際應(yīng)用較少,因此目前市場上存在矢量化書法字?jǐn)?shù)目是非常少的,而且基本都是幾種古體字,應(yīng)用方式也很單一,主要是按輸入的文字來選擇不同字體。至于將其應(yīng)用于虛擬書法學(xué)習(xí)中就更少了,因此我們所做的對啟體書法字的矢量化研究的應(yīng)用前景還是很大的。

常見的圖像矢量化算法有:基于細化的方法包括邊界追蹤和適當(dāng)骨架法;基于非細化的方法,包括輪廓線的方法、基于Hough變換的方法、正交方向搜索法(OZZ)、基于網(wǎng)格模式的方法、基于游碼的方法和基于稀疏像素的方法;還有整體矢量化算法[5]。

基于非細化的矢量化算法不必先對光柵圖像中的線體細化,提取中心骨架線。其中常見的輪廓線法是首先找到線體的形狀,即圖線的邊緣輪廓信息,然后對圖線邊緣的輪廓信息進行對稱搜索,在該過程中獲得圖線的中軸骨架矢量,取樣和跟蹤中心軸點[6]。本論文探討基于非細化的輪廓線的矢量化算法,在尋找輪廓的過程中,附帶將漢字的每一個筆畫找出來,整個過程不同于以往通過細化來提取筆畫的方式,所以稱為非細化的矢量化方法。

啟功先生,字元伯,又作元白,北京人。是我國當(dāng)代著名的書畫家、文物鑒定家、教育家、詩人。曾在北京師范大學(xué)任教授、博導(dǎo),執(zhí)教多年,他的書畫作品流傳廣泛。啟功先生借鑒歷史上多位書法大家的精髓,加之自身深厚的文化功底,寫得的書法字自成一體,俊秀舒展,收放自如,稱為“啟體”,見圖 1。他為世人以及北京師范大學(xué)留下了寶貴的藝術(shù)財富,在國內(nèi)乃至國際上都有著深遠的影響。書法是中國的國粹,是我國最古老的藝術(shù)形式,她本身具有獨一無二的表態(tài)傳神的功能,將優(yōu)秀的書法作品傳承發(fā)揚,將啟體傳承發(fā)揚,是一項偉大的工作。

圖1 啟功書法字

本文探討非細化的輪廓線的矢量化算法,首先對啟功書法字生成的位圖進行二值化,然后邊緣檢測完成邊界跟蹤存入設(shè)定的鏈表,得到完整邊界完成矢量化,同時將字體拆分為以筆畫為單位的矢量圖。我們對3 755個一級漢字的啟功書法字完成了矢量化的工作,并對每一個字以單獨筆畫為單位,分別進行了矢量化,制作了一個完整的包含一級漢字和每個漢字相應(yīng)的每一筆畫的啟功字庫。這一工作的完成對于常見啟體書法字的廣泛傳播和逐筆臨摹打下了基礎(chǔ),同時我們在本實驗室自主開發(fā)的書法學(xué)習(xí)系統(tǒng)上進行了成功的試驗。

在下文中,第2節(jié)介紹輪廓線提取算法;第3節(jié)闡述筆畫分割方法;第4節(jié)描述對矢量化結(jié)果的優(yōu)化處理方法,第5節(jié)介紹建立書法字庫,最后給出結(jié)果。

2 輪廓線提取

書法字作為光柵圖像的一個特殊性就是邊界是它最為重要的信息,本系統(tǒng)在取得漢字對應(yīng)筆畫的矢量化數(shù)據(jù)時,沒有使用傳統(tǒng)上最常見的將筆畫骨架提取,然后對筆畫進行分割的方法,而是采用基于角點的筆畫分割算法對目標(biāo)筆畫輪廓進行精確提取的方法,因此可以不必對線體細化,提取中心骨架線,而是直接追蹤光柵圖像中的線體邊界對漢字進行矢量化。

2.1 前期處理

在本系統(tǒng)中,首先對一幅書法灰度圖像進行二值化處理,得到一幅黑白圖像。然后建立原始二值圖的數(shù)據(jù)矩陣。

2.2 提取過程

經(jīng)過二值化后的黑白圖像,可以較為容易的檢測出邊緣。邊緣檢測技術(shù)就是提取目標(biāo)和背景的分界線,提取出邊緣才能將目標(biāo)和背景區(qū)分開來。邊界表明一個特征區(qū)域的終結(jié)和另一個特征區(qū)域的開始,邊界所分開區(qū)域的內(nèi)部特征或?qū)傩允且恢碌模吘墮z測實際上就是檢測圖像特征發(fā)生變化的位置。一個書法字,作為一個有一定寬度的漢字,他的邊界就是這個字的輪廓,是寬度為一個像素點的輪廓線,它的內(nèi)部經(jīng)過填充就是漢字的位圖。我們將圖像向各個方向移動一個像素的寬度,減去原始的位圖,既獲得了漢字位圖各個方向的邊緣,然后將原始二值圖的數(shù)據(jù)矩陣存儲為可識別外輪廓的矩陣,既邊界輪廓的二值圖的數(shù)據(jù)矩陣。

邊緣檢測完成后,將邊界點的坐標(biāo)存到邊界鏈表中,然后追蹤邊緣的坐標(biāo)。邊界跟蹤時,每次從最左下方開始搜索,然后延八個方向依次是左上方、上方、右上方、右方、右下方、下方、左下方和左方進行掃描,跟蹤出一個組件的一條完整輪廓。這樣就可以很好的矢量化有一定寬度的書法字,將他們的輪廓坐標(biāo)記錄下來,完成下一步的應(yīng)用。矢量化結(jié)果見圖2。

圖2 矢量化結(jié)果

3 筆畫分割

啟體書法字的特征是斷筆清晰,粘連的地方較少,屬于一筆一畫寫就的。因此把一個漢字分解成若干筆畫,使每一筆畫成為一個獨立的文件成為可能。我們建立這樣一個過程,在梯度變化劇烈的地方尋找到交錯點,再輔以人工交互,確定出兩筆畫間的交叉點,最后將一個筆畫完整分開。

3.1 角點檢測

概念介紹:在計算機視覺和圖像處理中, 角點被定義為:圖像邊界上曲率足夠大的點[7];系統(tǒng)還用到一個概念叫“十字角點”,是指兩筆畫相交構(gòu)成十字交叉狀態(tài)時那個位置的角點。該角點是一個筆畫十字交叉點當(dāng)中的角點。

為140度,就將它記錄在一個角點鏈表中。這種方式得到的角點數(shù)目顯然超過實際有效的角點個數(shù),于是有必要進行一番篩選,或者輔以人工交互,選擇出可連接的交角點,使其形成正確的角點對[9]。

3.2 尋找可連角點

漢字往往由若干筆畫交錯構(gòu)成,當(dāng)我們確定了某一角點后,如果它處于兩個筆畫的相交處,在它可能的前進方向上至少會有兩個角點與之相鄰,所以我們還需要確定這個角點該和哪一個角點連接,也就是找到這個角點的可連角點。

本文按照敖雪峰[9]的思想,設(shè)計的方法是:新建一個筆畫鏈表,從左下方開始掃描得到的第一個邊界點作為開始檢測點,并從開始檢測點沿著該檢測點所在的邊界線往下檢測,同時將檢測點依次加入到當(dāng)前筆畫鏈表中。直到遇到一個角點。先計算當(dāng)前角點與旁邊索引號相隔為k的點之間的連線的切矢值1;再計算當(dāng)前角點與其余角點的連線的切矢值2;選取與切矢值1最接近的角點連線,也就找到了當(dāng)前角點的可連角點。如圖3所示。

圖3 找到當(dāng)前角點的可連角點

3.3 筆畫分割過程

找到當(dāng)前角點的可連角點后,為它們做直線插值。將插值得到的點都添加到當(dāng)前筆畫鏈表中,然后再從該角點的可連角點的向前方向切矢繼續(xù)往下檢測。因為最初在角點對找的不合適時,已添加人工交互,所以可以準(zhǔn)確的將一條筆畫分割出來,這樣得到分割后的筆畫輪廓矢量后,就是得到一條完整筆畫的邊界信息。對封閉的輪廓進行填充,就很容易的得到了筆畫的位圖。

4 矢量化結(jié)果的處理

4.1 結(jié)果的優(yōu)化

仔細觀察分解后的筆畫,不可避免的會產(chǎn)生邊界的粗糙(如圖4、5顯示),所以我們在毛躁的邊界處采用局部插值的方法進行了平滑的優(yōu)化工作,得到了良好的效果。方法是,在不夠平滑的筆畫兩端各選一點,在筆畫鏈表中找到距離最近的對應(yīng)的兩個點,進行插值,就得到了平滑的邊界,對封閉輪廓再填充,就是優(yōu)化后的筆畫圖,見圖6。

圖4 分割后的筆畫的矢量化

圖5 對應(yīng)的分割后的筆畫

圖6 優(yōu)化后的筆畫輪廓字庫

4.2 交互獲取筆畫順序

對一個書法字進行了矢量化,將筆畫分割出來后將要完成的是存儲工作,這時就需要考慮如何獲取筆畫的順序,筆順是漢字一個重要特性,也是學(xué)寫漢字時幫助記憶的重要方法。對筆順的記錄直接關(guān)系到這些矢量化后的書法字的下一步應(yīng)用。

在我們的系統(tǒng)里,我們采用的方法是在矢量化和對筆畫的分割過程中,交互進行提前筆順的。具體到每一筆畫的矢量化和分割時,系統(tǒng)設(shè)計了一個“泛提”功能,用一個類似“套索”的工具大體圈定一個筆畫,再對這一區(qū)域進行矢量化和尋找角點的處理,然后提取筆畫。得到的結(jié)果往往是以目標(biāo)筆畫為中心的若干小筆畫,然后我們比較這些筆畫的長度,顯然最長的筆畫是我們的目標(biāo)筆畫。如果這個過程是按照筆畫原本的順序進行的,那么存儲在筆畫鏈表中的筆畫就是按照書法字筆畫順序得到的結(jié)果。如圖7所示。

圖7 獲取筆畫順序

5 書法庫的建立

矢量化完成后就要建立它的字庫,方便查詢。通常情況矢量字庫都建有一個文件頭, 用來記錄版權(quán)、字體、原陣點陣大小等信息。

5.1 筆畫存儲

由于我們采取按照筆畫順序交互提取每條筆畫的方式,所以每當(dāng)一條筆畫提取出來之后即將之保存到我們的筆畫庫文件中,相應(yīng)的筆畫庫文件的每個項目由筆畫所在漢字索引,筆畫索引,筆畫輪廓點數(shù),筆畫輪廓點順序排列坐標(biāo)和筆畫在漢字中的書寫順序這幾個字段組成。

5.2 書法字存儲與編碼

在我們的系統(tǒng)中,我們對所建立的3 755個一級國標(biāo)漢字按照其在標(biāo)準(zhǔn)中出現(xiàn)的順序按阿拉伯?dāng)?shù)字建立索引,并將其對應(yīng)的書法漢字圖像一并入庫進行存儲以建立書法漢字庫。這里所建立的數(shù)字索引即是我們筆畫庫文件中的漢字索引字段指向的索引。

將啟功書法字矢量化結(jié)果,依照上述方法,我們建立了含3 755個一級漢字的啟功書法庫。該庫包含每個字分解后所有筆畫的矢量化結(jié)果,以及筆畫的對應(yīng)的位圖,筆畫拆解時候是按照正確的筆順拆解的,可以同時記錄下筆畫順序。照這樣的方法,在書法字的學(xué)習(xí)系統(tǒng)中,我們可以方便的按順序逐筆調(diào)用,完成臨摹。同時由于存儲的是筆畫輪廓的矢量信息,我們還可以方便的比對臨摹結(jié)果和原始筆畫的差異,幫助用戶判斷臨摹的效果。圖 8展示啟功書法矢量庫中一些字的輪廓。

圖8 書法矢量化字列舉

6 總結(jié)

本文探討了一種基于非細化的輪廓線的啟功書法字矢量化算法,完成了對一級漢字的啟功書法字及每個字對應(yīng)筆畫的矢量化,構(gòu)造了這樣一個啟功字體書法矢量庫,其可以應(yīng)用于CAD, 3D字生成以及書法學(xué)習(xí)中,我們將在未來的文章中展示這些應(yīng)用。 圖 9是兩組啟功書法的矢量化結(jié)果。

圖9 啟功書法矢量化結(jié)果展示

致謝

在啟功字體的矢量化和應(yīng)用系統(tǒng)的構(gòu)建過程中,我得到了王燕妮師姐的大力幫助。對于一級漢字矢量化,是由趙鵬、張麗、張美霞和我共同完成的,在此要對他們的無私幫助和重要工作深表感謝。

[1] Junsong Zhang, Hongwei Lin, Jinhui Yu. A Novel Method for Vectorizing Historical Documents of Chinese Calligraphy[C]//Zhejiang University State Key Lab of CAD&CG Hangzhou,Zhejiang,310058,China.

[2] Nelson.S.H Chu and Chiew Lan Tai. Real Time Painting with an Expressive Virtual Chinese Brush[J]. IEEE Computer Graphics and Applications (S0272-1716),2004,10:76-85.

[3] Hsi-Ming Yang, Jainn-Jyh Lu, and Hsi-Jian Lee. A Bezier Curve-based Approach to Shape Description for Chinese Calligraphy Characters[C]//Department of Computer Science and Information Engineering National Chiao Tung University Hsinchu, Taiwan 30050.

[4] 吳英飛. 書法重現(xiàn)及其在數(shù)字化圖書館中的應(yīng)用[D].中國博士學(xué)位論文全文數(shù)據(jù)庫,2008.

[5] 彭榮杰. 圖像矢量化方法研究與應(yīng)用[D].中國優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫. 2006.

[6] 李學(xué)營. 點陣圖像矢量化的研究[D]. 中國優(yōu)秀博碩士學(xué)位論文全文數(shù)據(jù)庫 (碩士),2007,(06).

[7] S M Smith, J M Brady. SUSAN. A New Approach to Low Level Image Processing [R]. UK:Internal Technical Report TR95SMS1c, 1995.

[8] THEC-H,CHINR-T. On the Detection of Dominant Points on Digital Curves[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,1989,11(8):859-872.

[9] 敖雪峰. 基于角點檢測的毛筆字筆畫分割算法[C]//圖像圖形技術(shù)與應(yīng)用進展——第三屆圖像圖形技術(shù)與應(yīng)用學(xué)術(shù)會議論文集, 2008.

[10] 張鵬遠,董海,周文靈.計算機圖像處理技術(shù)基礎(chǔ)[M].北京:北京大學(xué)出版社,1996.

[11] 李賓,譚建榮,彭群生.一個基于掃描串的統(tǒng)-整體矢量化算法[J].軟件學(xué)報,1998,6:426-431.

[12] X Lin, S Shimotsuji, M Minoh, et al. Efficient Diagram Understanding with Charactenstic Pattern Detection[C]//Computer Vision, Graphics and Image Processing, 1985,30:84-106.

[13] CHEN Ju-wei,LEESuh-yin. On-line Chinese Character Recognition via a Representation of Spatial Relationships between Strokes[J]. International Journal of Pattern Recognition and Artificial Intelligence,1997,11(3):329-357.

[14] 章毓晉.圖像分割[M].北京:科學(xué)出版社.

猜你喜歡
矢量化鏈表角點
一種改進的Shi-Tomasi角點檢測方法
多支撐區(qū)域模式化融合角點檢測算法仿真
如何用鏈表實現(xiàn)一元多項式相加
跟麥咭學(xué)編程
基于FAST角點檢測算法上對Y型與X型角點的檢測
農(nóng)村土地承包經(jīng)營權(quán)確權(quán)登記調(diào)查底圖制作方法的探究
DEM的建立及其在林業(yè)上的應(yīng)用
基于MTF規(guī)則的非阻塞自組織鏈表
交互式矢量化技術(shù)在水文站網(wǎng)分布圖編繪中的應(yīng)用
鄉(xiāng)鎮(zhèn)區(qū)域作物秸稈產(chǎn)生量估算方法研究