Dela via


Bläckigenkänning

Inte alla program kräver användning av igenkänning, men eftersom de flesta program har utformats med text som sin primära datatyp är möjligheten att konvertera pennanteckningar till text mycket värdefull. Du kan använda igenkänningsfunktionerna i Plattforms-API:et för Tablet PC för att fråga efter information om de igenkänningsmotorer som är tillgängliga, till exempel vilka språk de känner igen. Du kan sedan skicka en strokes-samling från ett Ink--objekt till en igenkänningsmotor och få den att returnera ett RecognitionResult- objekt.

RecognizerContext-objekt

Ett RecognizerContext- objekt är instansiering av en viss identifierare. Med objektet RecognizerContext kan du identifiera en viss samling linjer synkront eller asynkront. När man känner igen asynkront returnerar objektet RecognizerContext objektet RecognitionResult i ett händelseåteranrop till programmet.

Identifierare och identifierarobjekt

En surfplatta kan ha en eller flera tillgängliga identifierare. Du kan söka i igenkännares samling för att avgöra vilken igenkännare som ska användas. En identifierare innehåller specifik information om dess funktioner, till exempel det språk som den kan känna igen och tillverkaren.

Om du vill ta reda på om minst en identifierare är installerad instansierar du ett InkRecognizerContext- objekt enligt följande C++ och C#-kodexempel. Om det inte finns någon identifierare misslyckas det här anropet till 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- och RecognitionAlternate-objekt

Resultatet av igenkänningen returneras i ett RecognitionResult-objekt. Resultatet innehåller en bästa resultatsträng i egenskapen TopString samt en samling alternativa resultat i en RecognitionAlternates--samling. Objektet RecognitionResult kan bevaras tillsammans med den ursprungliga Strokes-samling från vilken det genererades.

RecognizerGuide-struktur

Identifieringsguiden kan bestå av rader och kolumner och ger identifieraren en bättre kontext där igenkänningen ska utföras. Du kan till exempel rita vågräta linjer på en användares skärm, nästan som ett styrt papper, som visar var handskrift ska ske (den här typen av guide består endast av rader och inga kolumner). Om en användare skriver på raderna istället för på godtyckliga platser, förbättras igenkänningsprecisionen.

Följande bild visar en RecognizerGuide struktur med två rader för indata.

bild som visar tvåradsigenkänningsguide

Följande bild visar en RecognizerGuide struktur med fyra kolumner och tre rader.

bild som visar tre-vid-fyra igenkänningsguide

Mer information om hur du använder RecognizerGuide-strukturen finns i referensavsnittet RecognizerGuide.