Reconhecimento de Tinta

Nem todos os aplicativos exigem o uso do reconhecimento, mas como a maioria dos aplicativos foi projetada com texto como seu tipo de dados primário, a capacidade de converter tinta em texto é muito valiosa. Você pode usar os recursos de reconhecimento da API da plataforma tablet pc para consultar informações sobre os mecanismos de reconhecimento disponíveis, como quais idiomas eles reconhecem. Em seguida, você pode enviar uma coleção Strokes de um objeto Ink para um mecanismo de reconhecimento e fazer com que ele retorne um objeto RecognitionResult .

Objeto RecognizerContext

Um objeto RecognizerContext é a instanciação de um determinado reconhecedor. O objeto RecognizerContext permite reconhecer uma determinada coleção de traços de forma síncrona ou assíncrona. Ao reconhecer de forma assíncrona, o objeto RecognizerContext retorna o objeto RecognitionResult em um retorno de chamada de evento para o aplicativo.

Reconhecedores e objetos do reconhecedor

Um único Tablet PC pode ter um ou mais reconhecedores disponíveis. Você pode consultar a coleção do reconhecedor para determinar qual reconhecedor usar. Um reconhecedor fornece informações específicas sobre seus recursos, como o idioma que ele pode reconhecer e o fabricante.

Para determinar se pelo menos um reconhecedor está instalado, instancie um objeto InkRecognizerContext , conforme mostrado nos exemplos de código C++ e C#a seguir. Se um reconhecedor não estiver presente, essa chamada para CoCreateInstance falhará.

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

Objetos RecognitionResult e RecognitionAlternate

Os resultados do reconhecimento são retornados em um objeto RecognitionResult . Os resultados contêm uma cadeia de caracteres de melhor resultado na propriedade TopString , bem como uma coleção de resultados alternativos em uma coleção RecognitionAlternates . O objeto RecognitionResult pode ser persistido com a coleção Strokes original da qual foi gerado.

Estrutura RecognizerGuide

O guia do reconhecedor pode consistir em linhas e colunas e fornece ao reconhecedor um contexto melhor no qual executar o reconhecimento. Por exemplo, você pode desenhar linhas horizontais na tela de um usuário, quase como uma peça de papel regrada, que mostram onde a manuscrito deve ocorrer (esse tipo de guia consistiria apenas em linhas e sem colunas). Se um usuário gravar nas linhas, em vez de algum espaço arbitrário, a precisão do reconhecimento melhorará.

A ilustração a seguir mostra uma estrutura RecognizerGuide com duas linhas para entrada.

ilustração mostrando o guia do reconhecedor de duas linhas

A ilustração a seguir mostra uma estrutura RecognizerGuide com quatro colunas e três linhas.

ilustração mostrando o guia do reconhecedor de três por quatro

Para obter mais informações sobre como usar a estrutura RecognizerGuide , consulte o tópico de referência RecognizerGuide .