專利名稱::一種手寫漢字美化的筆畫渲染方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于模式識(shí)別與人工智能
技術(shù)領(lǐng)域:
,特別是涉及一種手寫漢字美化的筆畫渲染方法。
背景技術(shù):
:中國(guó)毛筆已經(jīng)有數(shù)千年的歷史,中國(guó)書(shū)法被認(rèn)為是中國(guó)繪畫的最高形式。手寫體漢字比印刷體漢字更靈活、更有原創(chuàng)性,人們甚至認(rèn)為手寫字跡能反映一個(gè)人的性格、情緒和文化修養(yǎng)等個(gè)人特征。這使得手寫體漢字成為這些亞洲國(guó)家生活和文化中不可分割、不可替代的藝術(shù)形式。近年來(lái)有一些專利側(cè)重與漢字美化方面。申請(qǐng)?zhí)枮?00810060767.8的"一種漢字書(shū)寫形態(tài)美觀度的計(jì)算機(jī)評(píng)估方法"給出了一種計(jì)算機(jī)對(duì)漢字書(shū)寫心態(tài)美觀度的評(píng)估方法。這種方法只是對(duì)利用圖像處理和人工智能對(duì)漢字書(shū)寫進(jìn)行一個(gè)評(píng)價(jià),并沒(méi)有對(duì)字體進(jìn)行美化處理。申請(qǐng)?zhí)枮?00810121201.1的"一種手寫體漢字的計(jì)算機(jī)生成與美化方法"公開(kāi)了一種手寫體漢字的計(jì)算機(jī)生成與美化方法。該方法只是簡(jiǎn)單的利用線性插值,得到新的手寫字體,所以美化效果方面還有待提高。申請(qǐng)?zhí)枮?00810028916.2的"一種手寫漢字美化方法"提出一種手寫漢字美化方法,在保留書(shū)寫者書(shū)寫風(fēng)格基礎(chǔ)上,對(duì)其手寫漢字進(jìn)行美化的手寫軌跡處理方法。但是由于字體眾多,并沒(méi)有針對(duì)特定字體來(lái)進(jìn)行美化,雖然保留了個(gè)人風(fēng)格,但是美化的目標(biāo)并沒(méi)有達(dá)到特定字體的效果。
發(fā)明內(nèi)容本發(fā)明的目的在于利用計(jì)算機(jī)處理的方法,提供一種手寫漢字美化的筆畫渲染方法,不僅保留手寫者的手寫風(fēng)格,而且將書(shū)寫者的字體進(jìn)行筆畫渲染,使其貼近行楷風(fēng)格的毛筆字體。本發(fā)明包括如下技術(shù)特征首先從輸入設(shè)備捕捉到用戶的輸入軌跡;進(jìn)行重采樣處理;獲得采樣均勻的用戶輸入的筆畫的骨架信息,然后通過(guò)筆畫渲染技術(shù)實(shí)現(xiàn)具有毛筆行楷書(shū)法風(fēng)格的筆畫輪廓,其特征在于所述筆畫渲染技術(shù)包括如下步驟(1)筆畫標(biāo)記利用橢圓來(lái)模擬生成毛筆書(shū)法風(fēng)格的筆畫形狀,在軌跡曲線上選用不同的筆鋒橢圓來(lái)代表著該點(diǎn)上的筆畫寬度、書(shū)寫方向以及筆畫走勢(shì)屬性;(2)筆畫輪廓插值將筆畫分成從細(xì)變粗、從粗變細(xì)以及兩頭大小相同分別對(duì)橢圓的長(zhǎng)軸,短軸以及角度進(jìn)行插值;(3)筆畫生成利用橢圓的反走樣處理,完成字體的美化處理。所述步驟(1)具體為,已知軌跡曲線t處的軌跡點(diǎn)坐標(biāo)Qt=(xt,yt)以及該處的軌跡曲線切線方向9t,該處的橢圓形狀Et={at,bt,"t}是Qt和9t的函數(shù)<formula>formulaseeoriginaldocumentpage5</formula>其中,"t(Qt,et)是筆鋒橢圓主軸方向,表征筆鋒的書(shū)寫方向;at(Qt,et)是筆鋒橢圓主軸大小,表征筆畫在該處的筆畫寬度;bt(Qt,et)是次主軸大小,主長(zhǎng)度bt與主軸長(zhǎng)度成一比例因子關(guān)系<formula>formulaseeoriginaldocumentpage5</formula>當(dāng)筆桿傾斜方向與書(shū)寫方向相同時(shí),筆鋒橢圓在書(shū)寫方向上有延展趨勢(shì),即短軸較長(zhǎng),比例因子kt較大;而當(dāng)筆桿傾斜方向與書(shū)寫方向相反時(shí),筆鋒橢圓在書(shū)寫方向上被壓縮,短軸縮短,、較小;所述步驟(2)具體為,通過(guò)筆畫標(biāo)記算法,對(duì)筆畫軌跡中的起點(diǎn)、終點(diǎn)以及轉(zhuǎn)折點(diǎn)進(jìn)行標(biāo)記;對(duì)于筆畫軌跡中的其它點(diǎn),采用插值的方法計(jì)算其筆鋒形狀參數(shù)at,"t以及bt;bt采用線性插值方式,"t在軌跡曲線上沒(méi)有拐點(diǎn)的情況下也是線性插值,而存在拐點(diǎn)的附件,其拐點(diǎn)附件都采用拐點(diǎn)處的"t。值;at的插值計(jì)算方法根據(jù)筆畫外輪廓的走向,分成筆畫段從粗變細(xì)、筆畫段從細(xì)變粗、筆畫段兩端大小相同三種不同的情況分別進(jìn)行插值處理;所述步驟(3)筆畫生成具體為設(shè)橢圓中心為(x。,y。),a和b分別為長(zhǎng)半軸和短半軸,"為主軸與x軸的夾角,設(shè)(x,y)是屏幕上的象素點(diǎn);首先計(jì)算點(diǎn)(x,y)到點(diǎn)(x。,y。)的距離d以及經(jīng)過(guò)(x。,y。)與(x,y)的直線與橢圓主軸方向間的夾角^^""g(^T^)-ft)根據(jù)橢圓形定義方程可以推算得出,在與主軸方向夾角為e的方向上,橢圓的半徑長(zhǎng)度為如果(x,y)位于橢圓內(nèi),即d〈d。-0.5,則(x,y)為完全填充VasinP+6cos"點(diǎn),灰度值為0;如果(x,y)在橢圓上,即d。-0.5《d<d。+0.5,令e=d-(d。-0.5),則(x,y)灰度值為255e;當(dāng)d>d。+0.5,即(x,y)在橢圓外,(x,y)灰度值為255,即不進(jìn)行填充。更進(jìn)一步的,對(duì)步驟(1)可以更具體為對(duì)步驟(1)中所述"t(Qt,et)進(jìn)行適當(dāng)角度的傾斜,加入可調(diào)的附加角度St,即w'CG',《)^《+i+《,具體到在行楷書(shū)法中,在書(shū)寫每一筆的起始點(diǎn)時(shí),落筆方向一般會(huì)向左傾斜約30。角度。反映在筆鋒橢圓的特性上,所以要在"t上附加角度St為25。35°,最優(yōu)30°。對(duì)步驟(1)中所述的at(Qt,9t)進(jìn)行適當(dāng)調(diào)整,當(dāng)"t確定時(shí)at定義為at(Qt,et)=Wt/sin("t(Qt,et));其中Wt是該處的筆畫寬度,Wt的確定與用戶選擇的筆畫寬度參數(shù)以及t的取值有關(guān),也與當(dāng)前筆畫與其前后相鄰筆畫的鄰接關(guān)系有關(guān)。所述Wt依照如下表規(guī)則確定<table>tableseeoriginaldocumentpage6</column></row><table>所述PeruWidth是一個(gè)可變的用戶參數(shù),表示筆鋒的最大寬度,用戶可通過(guò)圖形界面調(diào)整筆畫寬度的值;MiruStroke—Width表示筆畫最小寬度,是一個(gè)預(yù)定義的常量,系統(tǒng)選定Min—Stroke—Width=3。對(duì)步驟(1)中所述bt(Qt,et)的調(diào)整,其具體操作如下bt(Qt,et)是長(zhǎng)短軸at(Qt,A:,=et)乘上比例因子kt,在書(shū)寫拐點(diǎn)或轉(zhuǎn)折點(diǎn)時(shí),筆桿旋轉(zhuǎn)方向傾向書(shū)寫方向的反方向,kt減??;在書(shū)寫非拐點(diǎn)筆段時(shí),筆桿旋轉(zhuǎn)方向傾向書(shū)寫方向,kt增大;kt定義如下范圍內(nèi)存在拐點(diǎn)其它其中T是一個(gè)預(yù)定義的閾值,設(shè)為O.1。更進(jìn)一步的,對(duì)所述步驟(2)可以更具體為所提及對(duì)at的三種插值計(jì)算方法,其具體如下當(dāng)筆畫段從粗變細(xì),假設(shè)Si和Sw是拐點(diǎn),而[Si,si+1)區(qū)間上的筆畫段軌跡近似成一段直線段,拐點(diǎn)Si和si+1上的筆鋒橢圓分別為五,={^,、,氣}和^+,={、+1,、,氣+'},分別使用二次函數(shù)和線性函數(shù)尸5,,5,+1(0對(duì)2,.和",+,的連線進(jìn)行插值運(yùn)算,其中c+,(f)具體定義為i,若v,.+,為筆畫末端筆段爿-,若5,^+1為尾部延伸筆段其中,<formula>formulaseeoriginaldocumentpage7</formula><formula>formulaseeoriginaldocumentpage7</formula>當(dāng)筆畫段從細(xì)變粗,則視為第一種情況的反相;使用線性函數(shù)S,.^(0對(duì)&和^的連線進(jìn)行插值運(yùn)算,Pw,+,(0具體定義為<formula>formulaseeoriginaldocumentpage7</formula>當(dāng)筆畫段兩端大小相同,此時(shí),、+'=、,如果兩個(gè)相鄰拐點(diǎn)Si和si+1的主軸長(zhǎng)度被標(biāo)記為相同,把這一筆畫的輪廓曲線插值分為兩種情況處理,第一種情況,即曲線段Q(t)(Si《t<si+1)長(zhǎng)度在一定的閾值范圍內(nèi),系統(tǒng)把曲線段Q(t)(Si《t<si+1)判定為短筆段,使用平行于筆畫段骨架的直線來(lái)對(duì)Si和si+1之間的輪廓進(jìn)行插值,即在這個(gè)筆段上筆畫寬度保持不變;第二種情況是曲線段Q(t)(Si《t<si+1)長(zhǎng)度超過(guò)預(yù)定義的閾值范圍,則這個(gè)筆段是長(zhǎng)筆段,此時(shí)采用具有下凹特性的曲線來(lái)對(duì)長(zhǎng)筆段輪廓曲線進(jìn)行插值;插值函數(shù)^,+1W的定義為<formula>formulaseeoriginaldocumentpage7</formula><formula>formulaseeoriginaldocumentpage7</formula>[酬』".^。本發(fā)明的基本原理是利用筆畫渲染方法來(lái)實(shí)現(xiàn)輸出毛筆行楷手寫漢字的效果,其中筆畫渲染方法主要利用三步驟,分別是筆畫標(biāo)記,筆畫輪廓插值,筆畫生成,與已有的手寫漢字美化方法相比,本發(fā)明具有如下的優(yōu)點(diǎn)和有益效果(1)、保留了手寫人的個(gè)性化信息(2)、可以對(duì)手寫人的字體進(jìn)行行楷字體的轉(zhuǎn)換(3)、手寫漢字的美化過(guò)程運(yùn)算復(fù)雜度低,但其效果佳。圖1是本發(fā)明的系統(tǒng)總體結(jié)構(gòu)框圖;圖2是本發(fā)明的系統(tǒng)實(shí)現(xiàn)功能框具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的說(shuō)明,實(shí)施本發(fā)明所用的美化識(shí)別設(shè)備可以采用手寫板書(shū)寫漢字,用計(jì)算機(jī)進(jìn)行美化識(shí)別,用純平型顯示器顯示用戶圖形界面,可采用C語(yǔ)言編制各類處理程序,便能較好地實(shí)施本發(fā)明。本發(fā)明的系統(tǒng)總體結(jié)構(gòu)框圖如附圖l所示,漢字通過(guò)手寫板書(shū)進(jìn)行手寫輸入采樣,然后利用計(jì)算機(jī)實(shí)現(xiàn)美化算法對(duì)輸入的手寫字體美化,最后利用純平型顯示器顯示美化后的手寫字體輸出。本發(fā)明的系統(tǒng)實(shí)現(xiàn)功能框圖如附圖2所示,手寫輸入樣本的軌跡信息通過(guò)手寫板書(shū)已獲得,送入筆畫渲染處理模塊進(jìn)行毛筆字體模擬和處理,步驟(1)筆畫標(biāo)記,利用橢圓來(lái)模擬生成毛筆書(shū)法風(fēng)格的筆畫形狀,并在軌跡曲線上選用不同的筆鋒橢圓來(lái)代表著該點(diǎn)上筆畫寬度、運(yùn)筆方向以及筆畫走勢(shì)等屬性。步驟(2)筆畫輪廓插值,將筆畫分成從細(xì)變粗、從粗變細(xì)以及兩頭大小相同這三種情況分別對(duì)橢圓的長(zhǎng)軸,短軸以及角度進(jìn)行插值。步驟(3)筆畫生成,利用橢圓的反走樣處理,最終完成字體的美化處理,并且在顯示器上顯示美化后的字體。以下將對(duì)上述步驟(1)(3)進(jìn)行具體的說(shuō)明。步驟(1)筆畫標(biāo)記本系統(tǒng)使用筆鋒模擬的算法生成毛筆書(shū)法風(fēng)格的筆畫形狀。假設(shè)毛筆筆刷是一個(gè)理想的圓錐形,那么,筆鋒的形狀可以近似地看作一個(gè)橢圓。隨著筆畫書(shū)寫的方向、力度和筆桿轉(zhuǎn)向的改變,代表筆鋒的橢圓形在軸長(zhǎng)、長(zhǎng)短軸比例以及主軸方向上均會(huì)隨之改變。設(shè)一個(gè)筆畫的樣本點(diǎn)軌跡為Q(t),0《t《l,在t=ti處筆鋒橢圓E(t》以點(diǎn)Q(t》為中心,它的形狀由三個(gè)變量定義E(t)={at,bt,wt}式1其中,at為筆鋒橢圓主軸(x軸)長(zhǎng)度;bt為筆鋒橢圓次軸(y軸)長(zhǎng)度;"t為筆鋒橢圓的主軸與x軸的夾角。在軌跡曲線Q(t),0《t《1上的t點(diǎn)處,筆鋒橢圓Et={at,bt,"t}代表著該點(diǎn)上筆畫寬度、運(yùn)筆方向以及筆畫走勢(shì)等屬性。如何決定筆鋒橢圓形狀的算法,對(duì)筆畫形狀的生成有著重要的影響。本算法通過(guò)筆畫標(biāo)記模塊標(biāo)記軌跡Q(t)上特殊點(diǎn)的筆鋒橢圓形狀屬性值,然后使用插值方法得到筆畫軌跡其余點(diǎn)上的筆鋒形狀屬性值。設(shè)已知曲線t處的軌跡點(diǎn)坐標(biāo)Qt=(xt,yt)以及該處的軌跡曲線切線方向9t,則該處的橢圓形狀Et二{at,bt,"t}是Qt和9t的函數(shù),即Et=Et(Qt,et)={at(Qt,et),bt(Qt,9t),"t(Qt,et)}式2其中,at(Qt,9t),bt(Qt,9t),"t(Qt,9t)的物理意義分別描述如下:1、筆鋒橢圓主軸方向"t(Qt,et)"t(Qt,et)是筆鋒橢圓的主軸旋轉(zhuǎn)角度,它的值表征著當(dāng)前筆鋒的書(shū)寫方向。因此,"t(Qt,et)隨著書(shū)寫方向的改變而改變。在一般情況下,"t(Qt,et)方向與書(shū)寫方向成90°角,S卩指向書(shū)寫軌跡的法線方向,此時(shí),筆鋒橢圓的主軸長(zhǎng)度即為筆鋒的寬度值的一半。而在一些特殊點(diǎn)上,如筆畫起始點(diǎn)、拐點(diǎn)處,根據(jù)行楷書(shū)法的筆畫書(shū)寫特點(diǎn),可對(duì)"t(Qt,et)進(jìn)行適當(dāng)角度的傾斜,因此,在"t(Qt,et)的公式加入了一個(gè)可調(diào)的附加角度St,即W,(0《+昏+《式3舉例來(lái)說(shuō),在行楷書(shū)法中,在書(shū)寫每一筆的起始點(diǎn)時(shí),落筆方向一般會(huì)向左傾斜一定角度(約3(T)。反映在筆鋒橢圓的特性上,即要在"t上添加一個(gè)30。的傾斜角,即2。。2、筆鋒橢圓主軸大小at(Qt,9t)從直觀意義上來(lái)說(shuō),筆鋒橢圓的主軸長(zhǎng)度at表征了筆畫在該處的寬度,它直接影響著筆畫外輪廓的形狀。在已確定"t的情況下,at定義為at(Qt,et)=Wt/sin("t(Qt,et))式4其中wt是該處的筆畫寬度。wt的確定與用戶選擇的筆畫寬度參數(shù)以及t的取值有關(guān),也與當(dāng)前筆畫與其前后相鄰筆畫的鄰接關(guān)系有關(guān),是一個(gè)比較復(fù)雜的過(guò)程。本算法根據(jù)各種不同的參數(shù)以及鄰接關(guān)系情況進(jìn)行了一系列規(guī)則的設(shè)計(jì)如下表所示。相較于真實(shí)的楷書(shū)書(shū)寫情況,這些規(guī)則仍顯得比較簡(jiǎn)單。但在實(shí)驗(yàn)中,這樣的規(guī)則系列基本上能夠較好地?cái)M合流暢、美觀的筆畫輪廓,且能夠生動(dòng)地體現(xiàn)筆畫的轉(zhuǎn)折和力度的改變。筆畫寬度選擇規(guī)則<table>tableseeoriginaldocumentpage9</column></row><table>PeruWidth是一個(gè)可變的用戶參數(shù),表示筆鋒的最大寬度,用戶可通過(guò)圖形界面調(diào)整筆畫寬度的值。Min_Stroke_Width表示筆畫最小寬度,是一個(gè)預(yù)定義的常量,系統(tǒng)選定Min_Stroke_Width=3。3、次主軸大小bt(Qt,et)筆鋒橢圓的次主軸(短軸)長(zhǎng)度bt由主軸長(zhǎng)度以及長(zhǎng)短軸比例因子kt決定,即bt(Qt,et)=kt*at(Qt,et)式5筆鋒橢圓的長(zhǎng)短軸比例kt與毛筆筆桿的傾斜角度有關(guān)。當(dāng)筆桿傾斜方向與書(shū)寫方向相同時(shí),筆鋒橢圓在書(shū)寫方向上有延展趨勢(shì),即短軸較長(zhǎng),比例因子kt較大;而當(dāng)筆桿傾斜方向與書(shū)寫方向相反時(shí),筆鋒橢圓在書(shū)寫方向上被壓縮,短軸縮短,kt較小。由于系統(tǒng)所針對(duì)的輸入設(shè)備是普通的鼠標(biāo)或觸摸屏,無(wú)法取得與筆桿旋轉(zhuǎn)角度有關(guān)的信息,因此kt設(shè)置如下在書(shū)寫拐點(diǎn)或轉(zhuǎn)折點(diǎn)時(shí),筆桿旋轉(zhuǎn)方向傾向書(shū)寫方向的反方向,kt減?。辉跁?shū)寫非拐點(diǎn)筆段時(shí),筆桿旋轉(zhuǎn)方向傾向書(shū)寫方向,kt增大。根據(jù)以上原則,可定義其中T是一個(gè)預(yù)定義的閾值,一般設(shè)為0.1。對(duì)于拐點(diǎn)位置t,kt三0.2。步驟(2)筆畫輪廓插值通過(guò)筆畫標(biāo)記算法,筆畫軌跡中的拐點(diǎn)s。,...,sn(包括起點(diǎn)、終點(diǎn)以及轉(zhuǎn)折點(diǎn))進(jìn)行了標(biāo)記。對(duì)于筆畫軌跡中的其它點(diǎn),使用插值的方法計(jì)算其筆鋒形狀參數(shù)at,"t以及K。其中,bt的插值計(jì)算方法如式5,6所示。"t的插值算法也與之相似。若軌跡曲線在[t-T,t+T]范圍內(nèi)存在拐點(diǎn),則取與之最近的拐點(diǎn)處的"t。值為"t,否則^下面重點(diǎn)討論筆鋒橢圓主軸長(zhǎng)度at的插值計(jì)算方法,也就是筆畫的外輪廓曲線的插值方法。設(shè)Qt二(xt,yt)是筆畫軌跡上的一個(gè)點(diǎn),tG[Si,Sw),其中Si(0《i《n)是小于t的最大的拐點(diǎn)位置。顯然,筆畫軌跡在[Si,si+1)區(qū)間上可近似地看成一段直線段。此時(shí),忽略筆鋒橢圓的旋轉(zhuǎn)角度"t以及次軸長(zhǎng)度bt,筆畫外輪廓可分為三種不同的情況筆畫從細(xì)變粗、從粗變細(xì)以及兩頭大小相同。1、筆畫段從粗變細(xì)筆畫段從粗變細(xì)的情況一般出現(xiàn)在筆畫的結(jié)束處,可能是實(shí)際書(shū)寫的筆畫結(jié)束處或在頭尾延伸變換中所形成的尾部。假設(shè)把[Si,si+1)區(qū)間上的筆畫段軌跡近似地看成一段直線段,則筆畫段在骨架左右兩側(cè)的外輪廓曲線關(guān)于筆畫骨架軌跡對(duì)稱。不失一般性地,取骨架上側(cè)的外輪廓曲線進(jìn)行插值,以計(jì)算骨架采樣點(diǎn)上所對(duì)應(yīng)的筆畫寬度(如圖8所示)。實(shí)際書(shū)寫的筆畫結(jié)束筆段形狀與頭尾延伸所形成的尾部形狀稍有不同。實(shí)際書(shū)寫的筆畫結(jié)束筆段呈現(xiàn)具有弧線形狀的輪廓(如圖8二次函數(shù)插值曲線),而尾部延伸的輪廓形狀則呈現(xiàn)更為尖銳的夾角(如圖8線性函數(shù)插值曲線)。設(shè)拐點(diǎn)Si和si+1上的筆鋒橢圓分別為^,氣}和^,+1={a,,+i,、+i,c^.+i},分別使用二次函數(shù)和線性函數(shù)/^,)對(duì)^和2Si+,的連線進(jìn)行插值運(yùn)算,其中尸,,,,+,(O具體定義為<formula>formulaseeoriginaldocumentpage11</formula>,若SA.+,為筆畫末端筆段式7+-^)^^,若w,+,為尾部延伸筆段<formula>formulaseeoriginaldocumentpage11</formula>2、筆畫段從細(xì)變粗筆畫段從細(xì)變粗可以看成第一種情況的反過(guò)程。筆畫段從細(xì)變粗的情況一般出現(xiàn)在筆畫的開(kāi)始,與上一筆畫有連筆或拖筆的情況,筆畫段的外輪廓為會(huì)呈現(xiàn)較尖銳的夾角形狀。因此,使用線性函數(shù)/^,+1(Z)對(duì)仏和&,+1的連線進(jìn)行插值運(yùn)算,(O具體定義為<formula>formulaseeoriginaldocumentpage11</formula>3、筆畫段兩端大小相同筆畫段兩端大小相等的情況--般出現(xiàn)在筆畫的中間部分,此時(shí),"二3如果兩個(gè)相鄰拐點(diǎn)Si和si+1的主軸長(zhǎng)度相同,把這一筆畫的輪廓曲線插值分為兩種情況處理。第一種情況,即曲線段Q(t)(Si《t<si+1)長(zhǎng)度在一定的閾值范圍內(nèi),系統(tǒng)把曲線段Q(t)(Si《t<si+1)判定為短筆段,使用平行于筆畫段骨架的直線來(lái)對(duì)Si和Sw之間的輪廓進(jìn)行插值,即在這個(gè)筆段上筆畫寬度保持不變;第二種情況是曲線段Q(t)(Si《t<si+1)長(zhǎng)度超過(guò)預(yù)定義的閾值范圍,則這個(gè)筆段是長(zhǎng)筆段。注意到在行楷風(fēng)格的書(shū)法書(shū)寫長(zhǎng)直筆畫時(shí),在越接近拐點(diǎn)的地方,筆畫寬度越大,而離拐點(diǎn)越遠(yuǎn)筆畫寬度越小。因此采用具有下凹特性的曲線來(lái)對(duì)長(zhǎng)筆段輪廓曲線進(jìn)行插值。綜上所述,對(duì)于筆畫段兩端大小相等的情況,插值函數(shù)C,+,(O的定義為PSi,s,+1W=<formula>formulaseeoriginaldocumentpage11</formula>步驟(3)筆畫生成由于計(jì)算機(jī)圖象的數(shù)字化特點(diǎn),使得用計(jì)算機(jī)生成的圖形最終都是用離散的整數(shù)象素來(lái)顯示,而具有鋸齒或臺(tái)階狀外觀,這種由于低頻采樣不充分而造成的信息失真叫走樣(aliasing),借鑒采用Wu反走樣算法,其基本思想是設(shè)直線兩個(gè)端點(diǎn)為(A,y》和(X2,y》,把|Xl-yi|和|x2-y2|較長(zhǎng)的數(shù)軸為長(zhǎng)軸,較短的數(shù)軸為短軸。沿著長(zhǎng)軸方向前進(jìn)一個(gè)像素單位,在短軸方向與理想直線距離最近的有兩個(gè)像素,這兩個(gè)像素都點(diǎn)亮,但是這兩個(gè)像素對(duì)應(yīng)的顏色灰度值(強(qiáng)度)是不同的,距離遠(yuǎn)的像素灰度值小,距離近的像素灰度值大,但兩者灰度之和等于像素顏色的灰度值。根據(jù)這個(gè)思想,模擬生成毛筆書(shū)法風(fēng)格的橢圓反走樣畫法如下設(shè)橢圓中心為(x。,y。),a和b分別為長(zhǎng)半軸和短半軸,"為主軸與x軸的夾角。設(shè)(x,y)是屏幕上的象素點(diǎn)。首先計(jì)算點(diǎn)(x,y)到點(diǎn)(x。,y。)的距離d以及經(jīng)過(guò)(x。,y。)與(x,y)的直線與橢圓主軸方向間的夾角^=^"g(7T^)-"根據(jù)橢圓形定義方程可以推算得出,在與主軸方向夾角為e的方向上,橢圓的半徑長(zhǎng)度為,aZ<=/2…72J口果(x,y)位于橢圓內(nèi),即cKd。-0.5,則(x,y)為完全填充點(diǎn),A/asm6+6cos6*灰度值為0;如果(x,y)在橢圓上,即d。-0.5《d<d。+0.5,令e=d-(d。-0.5),則(x,y)灰度值為255e;當(dāng)d>d。+0.5,即(x,y)在橢圓外,(x,y)灰度值為255,則不進(jìn)行填充。權(quán)利要求一種手寫漢字美化的筆畫渲染方法,首先從輸入設(shè)備捕捉到用戶的輸入軌跡;進(jìn)行重采樣處理;獲得采樣均勻的用戶輸入的筆畫的骨架信息,然后通過(guò)筆畫渲染技術(shù)實(shí)現(xiàn)具有毛筆行楷書(shū)法風(fēng)格的筆畫輪廓,其特征在于所述筆畫渲染技術(shù)包括如下步驟(1)筆畫標(biāo)記利用橢圓來(lái)模擬生成毛筆書(shū)法風(fēng)格的筆畫形狀,在軌跡曲線上選用不同的筆鋒橢圓來(lái)代表著該點(diǎn)上的筆畫寬度、書(shū)寫方向以及筆畫走勢(shì)屬性;(2)筆畫輪廓插值將筆畫分成從細(xì)變粗、從粗變細(xì)以及兩頭大小相同分別對(duì)橢圓的長(zhǎng)軸,短軸以及角度進(jìn)行插值;(3)筆畫生成利用橢圓的反走樣處理,完成字體的美化。2.根據(jù)權(quán)利要求1所述的手寫漢字美化的筆畫渲染方法,其特征在于所述步驟(1)具體為,已知軌跡曲線t處的軌跡點(diǎn)坐標(biāo)Qt二(xt,yt)以及該處的軌跡曲線切線方向9t,該處的橢圓形狀Et={at,bt,"t}是Qt和et的函數(shù)Et=Et(Qt,et)={at(Qt,et),bt(Qt,et),"t(Qt,9》},其中,"t(Qt,et)是筆鋒橢圓主軸方向,表征筆鋒的書(shū)寫方向;at(Qt,et)是筆鋒橢圓主軸大小,表征筆畫在該處的筆畫寬度;bt(Qt,et)是次主軸大小,主長(zhǎng)度bt與主軸長(zhǎng)度成一比例因子關(guān)系kt,bt(Qt,et)=kt*at(Qt,et);當(dāng)筆桿傾斜方向與書(shū)寫方向相同時(shí),筆鋒橢圓在書(shū)寫方向上有延展趨勢(shì),即短軸較長(zhǎng),比例因子kt較大;而當(dāng)筆桿傾斜方向與書(shū)寫方向相反時(shí),筆鋒橢圓在書(shū)寫方向上被壓縮,短軸縮短,kt較??;所述步驟(2)具體為,通過(guò)筆畫標(biāo)記算法,對(duì)筆畫軌跡中的起點(diǎn)、終點(diǎn)以及轉(zhuǎn)折點(diǎn)進(jìn)行標(biāo)記;對(duì)于筆畫軌跡中的其它點(diǎn),采用插值的方法計(jì)算其筆鋒形狀參數(shù)at,"t以及K;bt采用線性插值方式,"t在軌跡曲線上沒(méi)有拐點(diǎn)的情況下也是線性插值,而存在拐點(diǎn)的附件,其拐點(diǎn)附件都采用拐點(diǎn)處的"t。值;at的插值計(jì)算方法根據(jù)筆畫外輪廓的走向,分成筆畫段從粗變細(xì)、筆畫段從細(xì)變粗、筆畫段兩端大小相同三種不同的情況分別進(jìn)行插值處理;所述步驟(3)筆畫生成具體為設(shè)橢圓中心為(x。,y。),a和b分別為長(zhǎng)半軸和短半軸,"為主軸與x軸的夾角,設(shè)(x,y)是屏幕上的象素點(diǎn);首先計(jì)算點(diǎn)(x,y)到點(diǎn)(x。,y。)的.義o根據(jù)橢圓形定義方程可以推算得出,在與主軸方向夾角為e的方向上,橢圓的半徑長(zhǎng)度為/2.2"a22。如果(x,y)位于橢圓內(nèi),即cKd。-0.5,則(x,y)為完全填充如sm0+Vcos'6*,點(diǎn),灰度值為0;如果(x,y)在橢圓上,即d。-0.5《d<d。+0.5,令e=d-(d。-0.5),則(x,y)灰度值為255e;當(dāng)d>d。+0.5,即(x,y)在橢圓外,(x,y)灰度值為255,即不進(jìn)行填充。3.根據(jù)權(quán)利要求2所述的手寫漢字美化的筆畫渲染方法,其特征在于對(duì)步驟(1)中所述"t(Qt,et)進(jìn)行適當(dāng)角度的傾斜,加入可調(diào)的附加角度stjpw,(G,《)=《+i+《4.根據(jù)權(quán)利要求3所述的手寫漢字美化的筆畫渲染方法,其特征在于附加角度、為25°至35°。5.根據(jù)權(quán)利要求2所述的手寫漢字美化的筆畫渲染方法,其特征在于對(duì)步驟(1)中所述的at(Qt,9t)進(jìn)行適當(dāng)調(diào)整,當(dāng)"t確定時(shí)at定義為at(Qt,et)=wt/sin("t(Qt,9t));其中Wt是該處的筆畫寬度,Wt的確定與用戶選擇的筆畫寬度參數(shù)以及t的取值有關(guān),距離d以及經(jīng)過(guò)(x。,y。)與(x,y)的直線與橢圓主軸方向間的夾角0="^^(^!)—0也與當(dāng)前筆畫與其前后相鄰筆畫的鄰接關(guān)系有關(guān)。6.根據(jù)權(quán)利要求5所述的手寫漢字美化的筆畫渲染方法,其特征在于所述wt依照如下表規(guī)則確定<table>tableseeoriginaldocumentpage3</column></row><table>所述Pen—Width是一個(gè)可變的用戶參數(shù),表示筆鋒的最大寬度,用戶可通過(guò)圖形界面調(diào)整筆畫寬度的值;Min—Stroke—Width表示筆畫最小寬度,是一個(gè)預(yù)定義的常量,系統(tǒng)選定Min_Stroke_Width=3。7.根據(jù)權(quán)利要求2所述的手寫漢字美化的筆畫渲染方法,其特征在于對(duì)步驟(1)中所述bt(Qt,et)的調(diào)整,其具體操作如下bt(Qt,et)是長(zhǎng)短軸at(Qt,et)乘上比例因子kt,在書(shū)寫拐點(diǎn)或轉(zhuǎn)折點(diǎn)時(shí),筆桿旋轉(zhuǎn)方向傾向書(shū)寫方向的反方向,kt減??;在書(shū)寫非拐點(diǎn)筆段時(shí),筆桿旋轉(zhuǎn)方向傾向書(shū)寫方向,kt增大;kt定義如下_/o.2軌跡曲線在p-r,,+:r]范圍內(nèi)存在拐點(diǎn)t=<[0.5其它其中T是一個(gè)預(yù)定義的閾值,設(shè)為0.1。8.根據(jù)權(quán)利要求2所述的手寫漢字美化的筆畫渲染方法,其特征在于所述步驟(2)所述at的三種插值計(jì)算方法,其具體如下當(dāng)筆畫段從粗變細(xì),假設(shè)Si和si+1是拐點(diǎn),而[Si,si+1)區(qū)間上的筆畫段軌跡近似成一段直線段,拐點(diǎn)Si和si+1上的筆鋒橢圓分別為A,={fl,,、,氣}和&,+1={",+,,、,,氣+,},分別使用二次函數(shù)和線性函數(shù)^U+,w對(duì)a,和a,+,的連線進(jìn)行插值運(yùn)算,其中^,,,,+,W具體定義為其中,-,若_^;+1為筆畫末端筆段若s,^為尾部延伸筆段L當(dāng)筆畫段從細(xì)變粗,則視為第一種情況的反相;使用線性函數(shù)S,^(0對(duì)a,和a,+,的連線進(jìn)行插值運(yùn)算,&,^W具體定義為<formula>formulaseeoriginaldocumentpage3</formula>當(dāng)筆畫段兩端大小相同,此時(shí),^w=、,如果兩個(gè)相鄰拐點(diǎn)Si和si+1的主軸長(zhǎng)度被標(biāo)記為相同,把這一筆畫的輪廓曲線插值分為兩種情況處理,第一種情況,即曲線段Q(t)(Si《t<si+1)長(zhǎng)度在一定的閾值范圍內(nèi),系統(tǒng)把曲線段Q(t)(Si《t<si+1)判定為短筆段,使用平行于筆畫段骨架的直線來(lái)對(duì)Si和si+1之間的輪廓進(jìn)行插值,即在這個(gè)筆段上筆畫寬度保持不變;第二種情況是曲線段Q(t)(Si《t<si+1)長(zhǎng)度超過(guò)預(yù)定義的閾值范圍,則這個(gè)筆段是長(zhǎng)筆段,此時(shí)采用具有下凹特性的曲線來(lái)對(duì)長(zhǎng)筆段輪廓曲線進(jìn)行插值;插值函數(shù)&,^(,)的定義為<formula>formulaseeoriginaldocumentpage4</formula>全文摘要本發(fā)明為一種手寫漢字美化的筆畫渲染方法,利用用戶輸入的軌跡信息,利用筆畫渲染技術(shù)實(shí)現(xiàn)具有毛筆行楷書(shū)法風(fēng)格的筆畫輪廓。所述筆畫渲染技術(shù)包括(1)筆畫標(biāo)記;(2)筆畫輪廓插值;(3)筆畫生成;與現(xiàn)有的手寫漢字美化方法相比,本發(fā)明保留了手寫人的個(gè)性化信息,可以對(duì)手寫人的字體進(jìn)行行楷字體的轉(zhuǎn)換,手寫漢字的美化過(guò)程運(yùn)算復(fù)雜度低,但其效果佳。文檔編號(hào)G06T11/00GK101699516SQ20091019351公開(kāi)日2010年4月28日申請(qǐng)日期2009年10月30日優(yōu)先權(quán)日2009年10月30日發(fā)明者朱星華,毛慧蕓,金連文申請(qǐng)人:華南理工大學(xué)