Reconnaissance de l’encre

Toutes les applications ne nécessitent pas l’utilisation de la reconnaissance, mais étant donné que la plupart des applications ont été conçues avec du texte comme type de données principal, la possibilité de convertir de l’encre en texte est très utile. Vous pouvez utiliser les fonctionnalités de reconnaissance de l’API de la plateforme Tablet PC pour demander des informations sur les moteurs de reconnaissance disponibles, tels que les langues qu’ils reconnaissent. Vous pouvez ensuite envoyer une collection Strokes à partir d’un objet Ink à un moteur de reconnaissance et retourner un objet RecognitionResult .

Objet RecognizerContext

Un objet RecognizerContext est l’instanciation d’un module de reconnaissance donné. L’objet RecognizerContext vous permet de reconnaître une collection donnée de traits de façon synchrone ou asynchrone. En cas de reconnaissance asynchrone, l’objet RecognizerContext retourne l’objet RecognitionResult dans un rappel d’événement à l’application.

Objets de reconnaissance et de reconnaissance

Un seul Tablet PC peut avoir un ou plusieurs module de reconnaissance disponibles. Vous pouvez interroger la collection du module de reconnaissance pour déterminer le module de reconnaissance à utiliser. Un module de reconnaissance fournit des informations spécifiques sur ses fonctionnalités, telles que la langue qu’il peut reconnaître et le fabricant.

Pour déterminer si au moins un module de reconnaissance est installé, instanciez un objet InkRecognizerContext comme indiqué dans les exemples de code C++ et C suivants # . Si aucun module de reconnaissance n’est présent, cet appel à CoCreateInstance échoue.

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.");
}

Objets RecognitionResult et RecognitionAlternate

Les résultats de la reconnaissance sont retournés dans un objet RecognitionResult . Les résultats contiennent une chaîne de résultat optimale dans la propriété de la chaîne de caractères , ainsi qu’une collection de résultats alternatifs dans une collection RecognitionAlternates . L’objet RecognitionResult peut être rendu persistant avec la collection Strokes d’origine à partir de laquelle il a été généré.

RecognizerGuide, structure

Le Guide de reconnaissance peut se composer de lignes et de colonnes et donne au module de reconnaissance un meilleur contexte dans lequel effectuer la reconnaissance. Par exemple, vous pouvez dessiner des lignes horizontales sur l’écran d’un utilisateur, presque comme une feuille de papier en règle générale, qui indique où l’écriture manuscrite doit se produire (ce type de repère se compose uniquement de lignes et de colonnes). Si un utilisateur écrit sur les lignes, au lieu d’un espace arbitraire, la précision de la reconnaissance s’en trouve améliorée.

L’illustration suivante montre une structure RecognizerGuide avec deux lignes pour l’entrée.

illustration illustrant le Guide de reconnaissance en deux lignes

L’illustration suivante montre une structure RecognizerGuide avec quatre colonnes et trois lignes.

illustration illustrant le Guide de reconnaissance trois-par-quatre

Pour plus d’informations sur l’utilisation de la structure RecognizerGuide , consultez la rubrique de référence RecognizerGuide .