Share via


잉크 인식

모든 애플리케이션에서 인식을 사용해야 하는 것은 아니지만 대부분의 애플리케이션은 텍스트를 기본 데이터 형식으로 디자인했기 때문에 잉크를 텍스트로 변환하는 기능이 매우 중요합니다. 태블릿 PC 플랫폼 API의 인식 기능을 사용하여 인식되는 언어와 같이 사용 가능한 인식 엔진에 대한 정보를 쿼리할 수 있습니다. 그런 다음 Ink 개체에서 인식 엔진으로 Strokes 컬렉션을 보내고 RecognitionResult 개체를 반환하도록 할 수 있습니다.

RecognizerContext 개체

RecognizerContext 개체는 지정된 인식기의 인스턴스화입니다. RecognizerContext 개체를 사용하면 지정된 스트로크 컬렉션을 동기적으로 또는 비동기적으로 인식할 수 있습니다. 비동기적으로 인식할 때 RecognizerContext 개체는 애플리케이션에 대한 이벤트 콜백에서 RecognitionResult 개체를 반환합니다.

인식기 및 인식기 개체

단일 태블릿 PC에는 하나 이상의 인식기를 사용할 수 있습니다. 인식기 컬렉션을 쿼리하여 사용할 인식기를 확인할 수 있습니다. 인식기가 인식할 수 있는 언어 및 제조업체와 같은 기능에 대한 특정 정보를 제공합니다.

하나 이상의 인식기가 설치되어 있는지 확인하려면 다음 C++ 및 C# 코드 예제와 같이 InkRecognizerContext 개체를 인스턴스화합니다. 인식기가 없으면 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 및 RecognitionAlternate 개체

인식 결과는 RecognitionResult 개체에 반환됩니다. 결과에는 TopString 속성에 최상의 결과 문자열과 RecognitionAlternates 컬렉션의 대체 결과 컬렉션이 포함됩니다. RecognitionResult 개체는 생성된 원래 Strokes 컬렉션으로 유지할 수 있습니다.

RecognizerGuide 구조체

인식기 가이드는 행과 열로 구성되며 인식기에서 인식을 수행할 수 있는 더 나은 컨텍스트를 제공합니다. 예를 들어 필기가 발생하는 위치를 보여 주는 거의 규칙 있는 종이처럼 사용자의 화면에 가로줄을 그릴 수 있습니다(이 가이드 유형은 행으로만 구성되고 열은 없음). 사용자가 임의의 공간 대신 줄에 쓰는 경우 인식 정확도가 향상됩니다.

다음 그림에서는 입력을 위해 두 줄이 있는 RecognizerGuide 구조를 보여 줍니다.

2줄 인식기 가이드를 보여 주는 그림

다음 그림에서는 열 4개와 행 3개가 있는 RecognizerGuide 구조를 보여 줍니다.

3-4개 인식기 가이드를 보여 주는 일러스트레이션

RecognizerGuide 구조체 사용에 대한 자세한 내용은 RecognizerGuide 참조 항목을 참조하세요.