Reconocimiento de lápiz

No todas las aplicaciones requieren el uso del reconocimiento, sino que la mayoría de las aplicaciones se diseñaron con texto como su tipo de datos principal, la capacidad de convertir la entrada de lápiz en texto es muy valiosa. Puede usar las características de reconocimiento de la API de plataforma tablet PC para consultar información sobre los motores de reconocimiento disponibles, como los idiomas que reconocen. A continuación, puede enviar una colección Strokes desde un objeto Ink a un motor de reconocimiento y hacer que devuelva un objeto RecognitionResult .

RecognizerContext (objeto)

Un objeto RecognizerContext es la creación de instancias de un reconocedor determinado. El objeto RecognizerContext permite reconocer una colección determinada de trazos de forma sincrónica o asincrónica. Al reconocer de forma asincrónica, el objeto RecognizerContext devuelve el objeto RecognitionResult en una devolución de llamada de evento a la aplicación.

Reconocedores y objetos Recognizer

Un solo pc tablet puede tener uno o varios reconocedores disponibles. Puede consultar la colección del reconocedor para determinar qué reconocedor se va a usar. Un reconocedor proporciona información específica sobre sus funcionalidades, como el lenguaje que puede reconocer y el fabricante.

Para determinar si se instala al menos un reconocedor, cree una instancia de un objeto InkRecognizerContext como se muestra en los siguientes ejemplos de código de C++ y C#. Si un reconocedor no está presente, se produce un error en esta llamada a 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 y RecognitionAlternate (objetos)

Los resultados del reconocimiento se devuelven en un objeto RecognitionResult . Los resultados contienen una cadena de resultados óptima en la propiedad TopString , así como una colección de resultados alternativos en una colección RecognitionAlternates . El objeto RecognitionResult se puede conservar con la colección Strokes original desde la que se generó.

RecognizerGuide (estructura)

La guía del reconocedor puede constar de filas y columnas, y proporciona al reconocedor un mejor contexto en el que realizar el reconocimiento. Por ejemplo, puede dibujar líneas horizontales en la pantalla de un usuario, casi como una pieza de papel reglada, que muestre dónde debe producirse la escritura a mano (este tipo de guía constaría solo de filas y sin columnas). Si un usuario escribe en las líneas, en lugar de algún espacio arbitrario, mejora la precisión del reconocimiento.

En la ilustración siguiente se muestra una estructura RecognizerGuide con dos líneas para la entrada.

ilustración que muestra la guía del reconocedor de dos líneas

En la ilustración siguiente se muestra una estructura RecognizerGuide con cuatro columnas y tres filas.

Ilustración que muestra la guía del reconocedor de tres a cuatro

Para obtener más información sobre el uso de la estructura RecognizerGuide , consulte el tema de referencia de RecognizerGuide .