久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 漫談WinCE的手寫識別技術(一)

漫談WinCE的手寫識別技術(一)

作者: 時間:2016-09-12 來源:網絡 收藏

HwxALCValid(hrc,ALC_KANJI_ALL); //識別漢字

5.調用HwxSetContext()設置前文,提高文字識別率.如果沒有前文,可以不調用該函數.

6.調用HwxInput()加入文字筆畫.如果文字是多筆畫,則應多次調用該函數.

函數原型是:

BOOL HwxInput(

HRC hrc,

POINT* lppnt,

UINT upoints,

DWORD timestamp

);

lppnt是輸入的筆畫坐標,upoints是坐標的個數,和HWXGUIDE的參數一樣,這里的坐標也是屏幕坐標系.timestamp是時間,一般情況下,我們可以設置為0.

需要注意的是,如果是多筆畫的文字,最好不要一次性將所有筆畫點陣通過HwxInput()輸入,否則最后的識別結果將會大相徑庭.因為識別引擎是一筆一劃進行輸入識別的,如果多筆畫文字一次性輸入,引擎可能將所有筆畫當成一個筆畫,從而導致識別結果異常不準確.

7.調用HwxEndInput()告知引擎筆畫輸入結束,即將要進行識別部分.

8.調用HwxProcess()讓引擎進行識別處理.

9.調用HwxResultsAvailable()獲取識別的字符數.

根據文檔,HwxResultsAvailable()返回識別的字符數.然而在WinCE4.2中,調用hwxcht.dll的話,任何時候都是返回為0值,即使之后的函數能返回識別字符也依然如此.文檔中描述,該函數如果返回的是-1,則代表調用失敗,其它值代表可供使用的字符數.也許是WinCE4.2下識別引擎不完善的緣故,該函數根本沒有發揮文檔所描述的作用.

10.調用HwxGetResults()獲取結果.

INT32 HwxGetResults(

HRC hrc,

UINT cAlt,

UINT iFirst,

UINT cBoxRes,

HWXRESULTS* rgBoxResults

);

初看起來,該函數形參似乎特別復雜,但實際上并非如此.

根據文檔,cAlt是期望的輪流返回的字符,iFirst是想要返回字符的索引,cBoxRes是返回的字符個數.但實際上,cAlt起主導作用,比如說cBoxRes設置為1,而cAlt設置為10,則返回的字符個數依然為10.所以我在平常使用中,一般是將iFirst設為0,cBoxRes設為1,而cAlt設為所需返回的字符個數.

rgBoxResults指向儲存字符的緩沖區.不過,返回結果比較有意思,除了第一個rgBoxResults以外的所有結構的indxBox成員都儲存了返回字符.

比如返回五個字符'與子于飛干',則rgBoxResults的數組列數值為:

rgBoxResults[0].indxBox : 0

rgBoxResults[0].rgChar[0] : '與'

rgBoxResults[1].indxBox : '子'

rgBoxResults[1].rgChar[0] : '于'

rgBoxResults[2].indxBox : '飛'

rgBoxResults[2].rgChar[0] : '干'

11.調用 HwxDestroy()銷毀引擎,本次識別過程結束.如果需要繼續識別文字,從步驟2重新開始.


上一頁 1 2 下一頁

關鍵詞:

評論


相關推薦

技術專區

關閉