Riconoscimento input penna
Non tutte le applicazioni richiedono l'uso del riconoscimento, ma perché la maggior parte delle applicazioni è stata progettata con testo come tipo di dati primario, la possibilità di convertire input penna in testo è molto utile. È possibile usare le funzionalità di riconoscimento dell'API piattaforma Tablet PC per eseguire query per informazioni sui motori di riconoscimento disponibili, ad esempio le lingue che riconoscono. È quindi possibile inviare un insieme Strokes da un oggetto Ink a un motore di riconoscimento e restituire un oggetto RecognitionResult .
Oggetto RecognizerContext
Un oggetto RecognizerContext è l'istanza di un determinato riconoscimento. L'oggetto RecognizerContext consente di riconoscere una determinata raccolta di tratti in modo sincrono o asincrono. Quando si riconosce in modo asincrono, l'oggetto RecognizerContext restituisce l'oggetto RecognitionResult in un callback dell'evento all'applicazione.
Riconoscitori e oggetti riconoscimento
Un singolo PC tablet può avere uno o più riconoscitori disponibili. È possibile eseguire una query sulla raccolta del riconoscimento per determinare quale riconoscimento usare. Un riconoscimento fornisce informazioni specifiche sulle relative funzionalità, ad esempio la lingua che può riconoscere e il produttore.
Per determinare se è installato almeno un riconoscimento, creare un'istanza di un oggetto InkRecognizerContext come illustrato negli esempi di codice C++ e C# seguenti. Se non è presente un riconoscimento, questa chiamata a CoCreateInstance ha esito negativo.
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.");
}
Oggetti RecognitionResult e RecognitionAlternate
I risultati del riconoscimento vengono restituiti in un oggetto RecognitionResult . I risultati contengono una stringa di risultati ottimale nella proprietà TopString , nonché una raccolta di risultati alternativi in un insieme RecognitionAlternates . L'oggetto RecognitionResult può essere mantenuto con l'insieme Strokes originale da cui è stato generato.
Struttura RecognizerGuide
La guida del riconoscimento può essere costituita da righe e colonne e fornisce al riconoscimento un contesto migliore in cui eseguire il riconoscimento. Ad esempio, è possibile disegnare linee orizzontali sullo schermo di un utente, quasi come un pezzo di carta regolato, che mostrano dove dovrebbe verificarsi la grafia (questo tipo di guida consiste solo di righe e nessuna colonna). Se un utente scrive sulle righe, anziché uno spazio arbitrario, la precisione del riconoscimento migliora.
La figura seguente mostra una struttura RecognizerGuide con due righe per l'input.
La figura seguente mostra una struttura RecognizerGuide con quattro colonne e tre righe.
Per altre informazioni sull'uso della struttura RecognizerGuide , vedere l'argomento di riferimento RecognizerGuide .