一種手寫原筆跡實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種手寫筆跡實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002] 在當(dāng)今信息化建設(shè)大潮中,電子文檔作為信息交換最主要的載體受到了廣泛關(guān) 注,無論是軍政部口還是商業(yè)機(jī)構(gòu),都在利用網(wǎng)絡(luò)傳遞文檔W保持著迅速、及時(shí)地溝通,全 數(shù)字化無紙辦公已成為必然之勢。如何使行文過程中的審批、決策等重要環(huán)節(jié)完全數(shù)字化 且不被篡改,并W通用文檔格式流轉(zhuǎn)存檔,已成為目前急需解決的問題。如今手寫輸入板W 及觸摸屏為解決鍵盤輸入的局限性提供了硬件基礎(chǔ),手寫輸入能滿足用戶手寫的隨意性, 它根據(jù)用戶在手寫輸入板上劃動所產(chǎn)生的軌跡顯示目標(biāo)文字,具有很強(qiáng)的使用親和力。
[0003]通常手寫板W及觸摸屏在手寫過程中采集到的是一些離散的軌跡點(diǎn),軌跡點(diǎn)是指 在手寫過程中通過手寫板或觸摸屏等手寫設(shè)備實(shí)時(shí)采集的手寫軌跡上的離散點(diǎn)。對于運(yùn)些 軌跡點(diǎn)通常要進(jìn)行曲線擬合,即用連續(xù)的曲線近似地刻畫或比擬平面上離散點(diǎn)組所表示的 坐標(biāo)之間的函數(shù)關(guān)系,即用解析表達(dá)式逼近離散坐標(biāo)數(shù)據(jù)。通常采用貝塞爾曲線的方法進(jìn) 行軌跡擬合,貝塞爾曲線能夠?qū)㈦x散點(diǎn)擬合為平滑的曲線,但如果在手寫板或觸摸屏將全 部的軌跡點(diǎn)收集結(jié)束后進(jìn)行曲線的擬合將產(chǎn)生很大的延遲,故此需要將離散點(diǎn)分段進(jìn)行擬 合,運(yùn)樣就產(chǎn)生了貝塞爾曲線間的平滑連接的問題。
[0004]在軌跡點(diǎn)擬合后通常采用筆刷貼圖的方式進(jìn)行原筆跡的擅染,筆刷貼圖是指在手 寫軌跡上通過插值的方式得到一系列連續(xù)的軌跡序列點(diǎn),并在運(yùn)些序列點(diǎn)上貼上筆刷,從 而得到手寫效果。但是為了保證最終的筆跡是平滑的,筆刷貼圖需要非常密集,運(yùn)就使得原 筆跡的擅染效率低,增加對設(shè)備的CPUW及顯卡的要求,同時(shí)增加了擅染延遲。
【發(fā)明內(nèi)容】
[0005]針對上述現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明提供一種手寫原筆跡實(shí)現(xiàn)方法,解決現(xiàn) 有原筆跡處理方法對軌跡點(diǎn)進(jìn)行分段曲線擬合過程中曲線間不能平滑連接的問題,W及在 原筆跡擅染過程中效率低的問題。
[0006]為達(dá)到上述目的,本發(fā)明所采用的技術(shù)方案如下:
[0007]一種手寫原筆跡實(shí)現(xiàn)方法,包括步驟如下:
[0008]步驟一、實(shí)時(shí)采集手寫過程中的軌跡點(diǎn);
[0009]步驟二、根據(jù)采集到的軌跡點(diǎn)進(jìn)行手寫軌跡的擬合;
[0010] 步驟=、根據(jù)每個(gè)軌跡點(diǎn)的壓力值W及筆鋒處理后確定每個(gè)軌跡點(diǎn)處的筆寬值;
[0011] 步驟四、對步驟二中擬合得到的曲線,根據(jù)步驟=中所得的軌跡點(diǎn)處的筆寬值進(jìn) 行筆刷填充,完成原筆跡的擅染。
[0012] 所述步驟二,采用中點(diǎn)貝塞爾連接方式進(jìn)行軌跡的擬合,具體是將相鄰兩個(gè)軌跡 點(diǎn)的中點(diǎn)作為曲線的兩個(gè)端點(diǎn),將兩個(gè)相鄰中點(diǎn)之間的軌跡點(diǎn)作為曲線的控制點(diǎn)進(jìn)行貝塞 爾曲線擬合。
[0013] 本發(fā)明提供的手寫原筆跡的實(shí)現(xiàn)方法,在手寫軌跡的擬合過程中對軌跡點(diǎn)采用中 點(diǎn)貝塞爾曲線擬合的方式,使得手寫軌跡是幾乎完全光滑的,從而提高了手寫原筆跡的仿 真度與自然度;在原筆跡擅染過程中采取了筆刷填充的方式,降低了擅染過程中的計(jì)算量, 提高了擅染效率,從而降低了手寫原筆跡的實(shí)現(xiàn)對CPUW及顯卡的要求,并減少的擅染延 遲。
【附圖說明】
[0014] 通過閱讀參照W下附圖對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、 目的和優(yōu)點(diǎn)將會變得更明顯:
[0015] 圖1為本發(fā)明所提供的方法流程圖;
[0016] 圖2為中點(diǎn)貝塞爾曲線擬合示意圖;
[0017] 圖3為大曲率曲線補(bǔ)點(diǎn)示意圖;
[0018] 圖4是本發(fā)明的軌跡擬合流程圖;
[0019]圖5是本發(fā)明采用筆刷填充方式擅染的輪廓圖;
[0020] 圖6是采用筆刷貼圖方式擅染的輪廓圖。
【具體實(shí)施方式】
[0021] 下面結(jié)合具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。W下實(shí)施例將有助于本領(lǐng)域的技術(shù) 人員進(jìn)一步理解本發(fā)明,但不W任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對本領(lǐng)域的普通技術(shù) 人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可W做出若干變形和改進(jìn)。運(yùn)些都屬于本發(fā)明 的保護(hù)范圍。
[0022] 本發(fā)明公開了一種手寫原筆跡的實(shí)現(xiàn)方法,該方法包括:實(shí)時(shí)采集手寫過程中的 軌跡點(diǎn);根據(jù)采集到的軌跡點(diǎn)進(jìn)行手寫軌跡的擬合;根據(jù)每個(gè)軌跡點(diǎn)的壓力值W及筆鋒處 理后確定每個(gè)軌跡點(diǎn)處的筆寬值;最后根據(jù)運(yùn)些筆寬值將擬合曲線分段后進(jìn)行筆刷填充, 從而完成對原筆跡的擅染。本發(fā)明能夠?qū)④壽E點(diǎn)進(jìn)行幾乎完全光滑的軌跡擬合,并且很高 效率的進(jìn)行原筆跡的擅染。
[002引圖1所示為本發(fā)明所提供的方法流程圖,包括如下:
[0024] 數(shù)據(jù)采集
[00巧]本發(fā)明通過手寫板或者觸摸屏實(shí)時(shí)采集手寫過程中軌跡點(diǎn)的數(shù)據(jù)。采集的軌跡點(diǎn) 數(shù)據(jù)包括每個(gè)軌跡點(diǎn)的位置坐標(biāo)、壓力值、采樣時(shí)間等。
[0026] 軌跡擬合
[0027] 本發(fā)明通過中點(diǎn)貝塞爾連接方式進(jìn)行軌跡的擬合。為了保證擅染的實(shí)時(shí)性,并盡 量減少計(jì)算量,中點(diǎn)貝塞爾連接是基于二次貝塞爾曲線的。二次貝塞爾曲線的公式為:
[0028]B(t) = (l-t)"P0+2t(l-t)Pl+t"P2 公式 1
[0029] 其中0《t《1,B(t)是擬合后的曲線,P0為擬合貝塞爾曲線的入點(diǎn),P2為擬合 貝塞爾曲線的出點(diǎn),P1為擬合貝塞爾曲線的控制點(diǎn)。
[0030] 中點(diǎn)貝塞爾曲線擬合即將相鄰兩個(gè)軌跡點(diǎn)的中點(diǎn)作為曲線的兩個(gè)端點(diǎn),將兩個(gè)相 鄰中點(diǎn)之間的軌跡點(diǎn)作為曲線的控制點(diǎn)進(jìn)行貝塞爾曲線擬合。中點(diǎn)貝塞爾曲線擬合示意圖 如圖2所示。 陽03U 圖2中?0、口1、口2、口3為軌跡點(diǎn),11為口0與口1的中點(diǎn),12為口1與口2的中點(diǎn),13 為P2與P3的中點(diǎn)。其中Ml與M2為貝塞爾曲線Cl的入點(diǎn)與出點(diǎn),PI為貝塞爾曲線Cl的 控制點(diǎn);M2與M3為貝塞爾曲線C2的入點(diǎn)與出點(diǎn),P2為貝塞爾曲線C2的控制點(diǎn)。
[0032] 采用中點(diǎn)貝塞爾曲線擬合的方法能夠完全保證曲線間的連接是平滑的,證明如 下:
[0033] 在圖2中,對于軌跡點(diǎn)P0、P1、P2、P3,P0與P1的中點(diǎn)M1,P1與P2的中點(diǎn)M2,P2 與P3的中點(diǎn)M3,其中
[0034] 對于由Ml、P1與M2擬合而成的曲線C1而言:
[0044] 在M2點(diǎn)處,t = 0,此處的曲線斜率為:
[0045]B2(t=0)' =P2-P1 式②
[0046] 由式①②可知,在M2點(diǎn)處,曲線1與曲線2有相同的斜率,故此可m正明曲線C1 與曲線C2是平滑連接的。
[0047] 中點(diǎn)貝塞爾曲線擬合的方式完全保證了擬合后筆跡的平滑性,但是會導(dǎo)致在筆跡 拐點(diǎn)處筆跡的失真,在拐點(diǎn)多而密的筆跡上失真尤其明顯。為了解決運(yùn)個(gè)問題,中點(diǎn)貝塞爾 曲線擬合采取了大曲率曲線補(bǔ)點(diǎn)的改進(jìn)。若曲線的最大曲率大于某個(gè)臨界值時(shí),便將運(yùn)一 段曲線視為大曲率曲線。補(bǔ)點(diǎn)即將之前作為曲線出點(diǎn)的兩軌跡點(diǎn)中點(diǎn)作為補(bǔ)入的軌跡點(diǎn), 重新進(jìn)行中點(diǎn)貝塞爾擬合。大曲率曲線補(bǔ)點(diǎn)示意圖如圖3所示。
[0048] 圖3中,P0、P1、P3、P4為軌跡點(diǎn),P1、P2、P3點(diǎn)擬合的曲線為大曲率曲線,點(diǎn) AddedPoint為P2與P3的中點(diǎn)作為補(bǔ)入的軌跡點(diǎn),補(bǔ)入的點(diǎn)與原軌跡點(diǎn)一起進(jìn)行中點(diǎn)貝塞 爾曲線擬合。虛線連接的曲線為補(bǔ)點(diǎn)前擬合的曲線,實(shí)線連接的曲線為補(bǔ)點(diǎn)后擬合的曲線, 從圖中可W看到,補(bǔ)點(diǎn)后的曲線更加貼近軌跡點(diǎn),在P2點(diǎn)處表現(xiàn)尤其明顯,從而修正了失 真的現(xiàn)象。
[0049] 根據(jù)上述的中點(diǎn)貝塞爾曲線連接方法,本方法實(shí)時(shí)讀取軌跡點(diǎn)P(n),其中n= 1, 2,3,……。當(dāng)n= 3時(shí),開始擬合手寫軌跡的第一段曲線,為了保證擬合后軌跡的起點(diǎn)與軌 跡點(diǎn)重合,故此第一段曲線采取不完全的中點(diǎn)貝塞爾曲線連接,即將P(l)為曲線的入點(diǎn), P似為曲線的控制點(diǎn),P似與P做的中點(diǎn)為曲線出點(diǎn)進(jìn)行貝塞爾曲線擬合。此后的軌跡 中間部分的曲線均采用完全的中點(diǎn)貝塞爾曲線連接,即將P(n-2)與P(n-l)的中點(diǎn)為曲線 的入點(diǎn),將P(n-l)為曲線控制點(diǎn),將P(n-l)與P(n)的中點(diǎn)為曲線的出點(diǎn)進(jìn)行貝塞爾曲線 的擬合。對于軌跡的最后一段曲線,為了保證擬合后軌跡的終點(diǎn)與軌跡點(diǎn)重合,故此最后一 段曲線采取不完全的中點(diǎn)貝塞爾曲線連接,即將P(n-2)與P(n-l)的中點(diǎn)作為曲線的入點(diǎn), 將P(n-l)作為曲線的控制點(diǎn),將P(n)作為曲線的出點(diǎn)進(jìn)行貝塞爾曲線的擬合。在每段曲 線擬合完成后,計(jì)算運(yùn)段曲線的最大曲率,若最大曲率大于臨界值,本方法對運(yùn)段曲線進(jìn)行 補(bǔ)點(diǎn),即將P(n-l)與P(n)的中點(diǎn)作為補(bǔ)點(diǎn)AddPoint,將P(n-。與?(11-1)的中點(diǎn)作為曲線 的入點(diǎn),將P(n-l)作為曲線的控制點(diǎn),將P(n-l)與AddPoint的中點(diǎn)最為曲線的出點(diǎn)擬合 第一段貝塞爾曲線;將P(n-l)與AddPoint的中點(diǎn)作為曲線的入點(diǎn),將AddPoint作為曲線 的控制點(diǎn),AddPoint與P(n)的中點(diǎn)作為曲線的出點(diǎn)擬合為第二段貝塞爾曲線;最后將運(yùn)兩 段曲線共同作為最終擬合的軌跡曲線。在本方法中軌跡擬合的過程中可知,除了軌跡的最 前兩段曲線間和最后兩段曲線間,其他曲線間的連接均是光滑的。
[0050] 本方法的軌跡擬合流程圖如圖4所示。
[0051] 軌跡點(diǎn)筆寬值計(jì)算
[0052] 軌跡點(diǎn)筆寬值的計(jì)算主要是根據(jù)當(dāng)前軌跡點(diǎn)的壓力值W及基礎(chǔ)筆寬,基礎(chǔ)筆寬是 指當(dāng)前原筆跡擅染的最大筆寬Wi化hMAx與最小筆寬widthMIW。軌跡點(diǎn)的筆寬值是隨著該軌 跡點(diǎn)壓力值的增大而增大的。筆寬Wi化h的計(jì)算公式如下:
[0053]wi化h=wi化hMiN+(wi化hwAx-wi化hMiN)*pressure 公式2
[0054] 上式中的pressure為軌跡點(diǎn)處的壓力值。
[0055] 此