筆跡辨識
並非所有應用程式都需要使用辨識,但因為大部分的應用程式都是使用文字做為其主要資料類型所設計,所以將筆跡轉換成文字的能力非常有價值。 您可以使用平板電腦平臺 API 的辨識功能來查詢可用的辨識引擎相關資訊,例如他們辨識的語言。 然後,您可以將 Strokes 集合從 Ink 物件傳送至辨識引擎,並讓它傳回 RecognitionResult 物件。
RecognizerCoNtext 物件
RecognizerCoNtext物件是指定辨識器的具現化。 RecognizerCoNtext物件可讓您以同步或非同步方式辨識指定的筆劃集合。 以非同步方式辨識時, RecognizerCoNtext 物件會在應用程式的事件回呼中傳回 RecognitionResult 物件。
辨識器和辨識器物件
單一平板電腦可能有一或多個辨識器可供使用。 您可以查詢辨識器的集合,以判斷要使用的辨識器。 辨識器提供其功能的特定資訊,例如可以辨識的語言和製造商。
若要判斷是否已安裝至少一個辨識器,請具現化 InkRecognizerCoNtext 物件,如下列 C++ 和 C# 程式碼範例所示。 如果辨識器不存在,則 對 CoCreateInstance 的呼叫會失敗。
CComPtr<IInkRecognizerContext> g_pIInkRecoContext;
hr = CoCreateInstance(CLSID_InkRecognizerContext,
NULL, CLSCTX_INPROC_SERVER,
IID_IInkRecognizerContext,
(void **) &g_pIInkRecoContext);
if (FAILED(hr))
{
::MessageBox(NULL, TEXT("No recognizers installed.\nExiting."),
gc_szAppName, MB_ICONERROR);
return -1;
}
try
{
Recognizers recos = new Recognizers();//Check for recognizer.
Recognizer defReco = recos.GetDefaultRecognizer();
recoContext = defReco.CreateRecognizerContext();
}
catch
{
MessageBox.Show("No recognizers installed.");
}
RecognitionResult 和 RecognitionAlternate 物件
辨識的結果會在 RecognitionResult 物件中傳回。 結果包含 TopString 屬性中的最佳結果字串,以及 RecognitionAlternates 集合中替代結果的集合。 RecognitionResult物件可以使用產生來源的原始Strokes集合來保存。
RecognizerGuide 結構
辨識器指南可以包含資料列和資料行,並提供辨識器執行辨識的較佳內容。 例如,您可以在使用者的螢幕上繪製水平線,就像是一張規則的紙張,顯示手寫應該發生的位置, (這種類型的指南只包含資料列,而且沒有資料行) 。 如果使用者在行上寫入,而不是某些任意空間,辨識精確度會改善。
下圖顯示具有兩行輸入的 RecognizerGuide 結構。
下圖顯示具有四個數據行和三個數據列 的 RecognizerGuide 結構。
如需使用 RecognizerGuide 結構的詳細資訊,請參閱 RecognizerGuide 參考主題。