下的夾角范圍是60°。根據(jù)筆畫段的方向角將其分類為如上的8個方向。
[0041]在特征點識別時,有時由于行筆路線的起伏或者彎曲,可能會識別出多余的特征點,又由于方向簡化為8個方向,這樣就會出現(xiàn)相鄰的方向一致的筆畫段,為了后面的筆畫識別的簡便,實際應用中可以將這種相同方向的筆畫段合并。
[0042]上述筆畫段既包括標識筆畫類型的主筆畫段(也可以稱為主要筆畫段),也包括為了寫出美觀的字體而進行藏鋒、頓筆等運筆的輔筆畫段(也可以稱為輔助筆畫段)??梢酝ㄟ^筆畫段長度來區(qū)分輔助筆畫段與主要筆畫段,本實施例設定筆寬與一個系數(shù)相乘作為識別主要筆畫段和輔助筆畫段的界限,如果長度小于這個界限則認為是輔助筆畫段,否則認為是主要筆畫段,這個系數(shù)可以取值為1.2?;诖?,上述步驟SllO具體包括:檢測當前筆畫段的長度;判斷當前筆畫段的長度是否小于設定的長度閾值;其中,該長度閾值是筆寬與設定系數(shù)相乘的值;如果小于,確定當前筆畫段是輔助筆畫段;如果不小于,確定當前筆畫段是主筆畫段。這種筆畫段的區(qū)分方式符合實際行筆風格,為后續(xù)筆畫的識別提供了可靠的數(shù)據(jù)。
[0043]步驟S110,根據(jù)主筆畫段和輔筆畫段間的連接關系確定對應的筆畫段的特征,該筆畫段的特征包括:起筆藏鋒、起筆頓筆、起筆轉向、收筆回鋒、收筆頓筆、收筆出尖和收筆轉向。
[0044]根據(jù)“中國書法的運筆特點”,可以得知通過檢測筆畫頭部和筆畫尾部的運筆細節(jié)可以判斷此筆畫的形態(tài)特點,比如藏鋒起筆或者露峰起筆等。本實施例將筆畫段的特征分為:起筆藏鋒、起筆頓筆、起筆轉向、收筆回鋒、收筆頓筆、收筆出尖、收筆轉向這7種特征。
[0045]一、起筆藏鋒:這是一個布爾型參數(shù),值為真表示藏鋒起筆,藏鋒起筆需要在起筆時先反方向運筆,然后頓筆,再正向前進。在判斷這個標志時,首先找到一個主要筆段,如果這個主要筆段前面有至少兩個輔助筆段,且與主要筆段不相鄰的輔助筆段中至少有一個與主要筆段的方向接近相反,則認為這個筆畫是起筆藏鋒。
[0046]二、起筆頓筆:這是一個布爾型參數(shù),值為真表示頓筆,這里所稱的頓筆是在書寫時沿筆畫前進路徑縱向的一個很小的筆畫。判讀這個標志的方法是:如果不是起筆藏鋒,且第一個主要筆段前面有至少一個輔助筆段,則認為是起筆頓筆。
[0047]三、起筆轉向:這里的轉向為旋轉方向,既順時針、逆時針和直向,由于毛筆在書寫筆畫時,藏鋒或者頓筆并不一定沿固定方向轉向,逆峰起筆的橫中,起筆是按照逆時針轉向的,而回峰收筆的豎中起筆是按照順時針走向的。本實施例可以通過計算第一個主要筆段與前一個輔助筆段之間的角度差判斷出是順時針還是逆時針,對于起筆只有第一個主要筆段前沒有輔助筆段這種情況,才會標記為直向。
[0048]四、收筆回鋒:同起筆藏鋒類似,收筆回峰是收筆時向反方向運筆的方法。判斷這個標志時是根據(jù)最后一個主要筆段后面不相鄰的筆段方向與最后主要筆段是否反向。
[0049]五、收筆頓筆:同起筆頓筆類似,所不同的是判斷最后一個主要筆段與其后面的輔助筆段。
[0050]六、收筆出尖:這種情況發(fā)生在撇、鉤等出尖的結尾筆畫,實際上收筆如果既沒有回峰也沒有頓筆則表示出尖,單獨增加此標志是為了簡化判斷邏輯。
[0051]七、收筆轉向:同起筆轉向,只不過記錄的是收筆的旋轉方向。
[0052]基于上述各種筆鋒的特點,上述步驟SllO具體包括以下步驟(1)-(4):
[0053](I)判斷第一個主筆畫段之前是否至少有兩個輔筆畫段,且與第一個主筆畫段不相鄰的輔筆畫段中至少有一個與第一個主筆畫段的方向反向,如果是,確定第一個主筆畫段所在的筆畫段為起筆藏鋒;如果否,且第一個主筆畫段前面有至少一個輔筆畫段,確定第一個主筆畫段所在的筆畫段為起筆頓筆;
[0054](2)計算第一個主筆畫段與前一個輔筆畫段之間的角度差,根據(jù)角度差確定第一個主筆畫段所在的筆畫段為順時轉向或逆時轉向;當?shù)谝粋€主筆畫段之前沒有輔筆畫段時,確定第一個主筆畫段所在的筆畫段為直向;
[0055](3)判斷最后一個主筆畫段后面不相鄰的輔筆畫段的方向與最后一個主筆畫段的方向是否反向,如果是,確定最后一個主筆畫段所在筆畫段為收筆回鋒;如果否,且最后一個主筆畫段后面有至少一個輔筆畫段,確定最后一個主筆畫段所在的筆畫段為收筆頓筆;
[0056](4)計算最后一個主筆畫段與后一個輔筆畫段之間的角度差,根據(jù)角度差確定最后一個主筆畫段所在的筆畫段為順時轉向或逆時轉向;當最后一個主筆畫段之后沒有輔筆畫段,確定最后一個主筆畫段所在的筆畫段為收筆出尖。
[0057]步驟S112,根據(jù)預先設定的筆畫段八方向規(guī)則確定上述主筆畫段的方向。
[0058]這里的預先設定的筆畫段八方向規(guī)則可以是圖2所示的方向設置規(guī)則,通過該規(guī)貝1J,可以確定出上述各個主筆畫段的方向,而各個主筆畫段的方向決定了用戶當前書寫的筆畫具體為哪種筆畫,進而為后續(xù)筆畫的識別提供了可靠的數(shù)據(jù)。
[0059]步驟S114,將確定的上述主筆畫段的方向和上述筆畫段(該筆畫段包括主筆畫段和輔筆畫段)的特征與預先建立的筆畫樣本庫比對,根據(jù)比對的結果識別書寫軌跡數(shù)據(jù)對應的筆畫。
[0060]由于中國書法有多種風格筆體,比如歐體、顏體、柳體、趙體等,不同的風格筆畫會有不同,因此可以預先建立多個筆畫樣本庫,先根據(jù)上述筆畫段的特征選取對應的樣本庫,再根據(jù)當前筆畫段對應的貝塞爾曲線從該樣本庫中確定對應的筆畫,進而與預先建立的筆畫樣本庫比對,將比對成功的筆畫作為上述書寫軌跡數(shù)據(jù)對應的筆畫。
[0061]本實施例通過對采集的書寫軌跡數(shù)據(jù)進行處理,如:對筆畫特征進行分析,標記出每個筆畫的特征點、劃分出筆段、計算出需要的參數(shù)數(shù)據(jù),如筆段長度,筆段之間的角度,分辨出關鍵路徑筆段,并判斷出筆畫特征,如起筆藏鋒、露峰,收筆回峰、出尖等信息,然后根據(jù)關鍵路徑筆段從筆畫庫中識別出該筆畫,該識別方式能夠比較準確快速的識別出用戶的書寫軌跡,且對設備的要求較低,降低了用戶的使用成本。
[0062]當用戶書寫完一個筆畫后,首先進行上述筆畫的分析計算過程,然后和筆畫庫中樣本進行比對,具體比對過程可以包括:先確定筆畫的類型,如橫、豎、撇、橫折鉤等,然后再根據(jù)筆畫的特征,比如藏鋒、露峰等從筆畫樣本庫中選擇適合的筆畫樣本,對于無法識別出筆畫的使用默認樣本,對于識別出筆畫,但是不能確定筆畫樣本的也選擇該筆畫的默認樣本。具體的,筆畫的類型識別可以采用下述方式實現(xiàn):主要是根據(jù)筆畫段的8方向順序,在前面描述了筆畫段的8方向計算,識別時將主要筆畫段的方向碼按先后順序排列,與筆畫庫中的筆畫類型逐一對比,如果相互匹配則判斷為此筆畫類型。如果筆畫庫中找不到適合的筆畫類型,則按默認筆畫處理。
[0063]筆畫的樣本選擇可以包括:當識別出筆畫類型后,選擇該筆畫類型的具體樣本,這主要是依據(jù)前面計算的筆畫特征:起筆藏鋒、起筆頓筆、起筆轉向、收筆回鋒、收筆頓筆、收筆出尖、收筆轉向來確定的,如果這些特征與筆畫樣本庫中的某個樣本一致則使用此樣本,否則使用此筆畫類型的默認樣本。
[0064]識別出上述筆畫后,可以將其繪制到對應的屏幕上,使得近似于真實毛筆筆畫的筆跡呈現(xiàn)在用戶眼前。通過對采集的書寫軌跡數(shù)據(jù)分析用戶的行筆路線識別用戶想要書寫的筆畫,能夠比較準確的從筆畫庫中選擇適合的筆畫顯示到屏幕上,使得用戶能夠寫出與書法名家一致的書法。
[0065]對應于上述方法,本發(fā)明實施例還提供了一種應用于毛筆書寫的行筆路線識別裝置,該裝置可以設置在與用戶手寫輸入設備相連的終端(計算機、平板電腦或手機等)上。參見圖3所示的應用于毛筆書寫的行筆路線識別裝置的結構框圖,該裝置包括:
[0066]數(shù)據(jù)采集模塊31,用于采集手寫輸入設備按下書寫至抬起停止書寫過程中的書寫軌跡數(shù)據(jù);其中,該書寫軌跡數(shù)據(jù)包括各個書寫點的坐標和時間;
[0067]數(shù)據(jù)平滑與插值處理模塊32,用于按照各個書寫點的時間先后順序對書寫軌跡數(shù)據(jù)進行平滑處理和插值處理;
[0068]特征點檢測模塊33,用于檢測處理后的書寫軌跡數(shù)據(jù)中的書寫點對應的角度變化值,將該角度變化值超過設定閾值的點確定為特征點;
[0069]筆畫段劃分模塊