메인 콘텐츠로 건너뛰기
ABBYY FineReader Engine은 현재 아랍어 ICR을 지원하지 않습니다. 하지만 아라비아 숫자만 인식하는 것은 가능하며, 이 문서에서는 이를 위해 필요한 단계를 설명합니다. 손글씨 인식에 설명된 절차에 더해, 아라비아 숫자를 인식하려면 10개의 숫자 기호만으로 구성된 알파벳을 사용하는 사용자 지정 언어를 만들고, 숫자가 포함된 각 블록의 인식 언어로 이를 설정해야 합니다. 따라서 손글씨 아라비아 숫자를 인식하려면 다음 단계를 수행합니다.
  1. LanguageDatabase 객체의 CreateTextLanguage method를 사용해 새 텍스트 언어를 만듭니다.
  2. TextLanguage 객체 내 BaseLanguage 객체의 LetterSet property를 사용해 다음 문자가 포함된 언어 알파벳을 설정합니다: ٠١٢٣٤٥٦٧٨٩.
  3. 손글씨 아라비아 숫자가 포함된 각 블록에 대해 ITextBlock::RecognizerParams property를 통해 인식 매개변수를 지정합니다.
    • RecognizerParams 객체의 TextLanguage property를 이전 단계에서 만든 언어로 설정합니다.
    • RecognizerParams 객체의 TextTypes property를 TT_Handwritten로 설정합니다.
    • 숫자가 프레임, 상자 등에 둘러싸여 있으면 RecognizerParams 객체의 FieldMarkingType property에서 문자 주변의 표식 유형을 설정합니다. 각 숫자가 별도의 셀에 쓰여 있으면 CellsCount property도 사용해 블록의 문자 셀 수를 설정합니다.

Windows 샘플

// 전역 ABBYY FineReader Engine 객체
FREngine::IEnginePtr Engine;
...
// 이미지 파일 열기
...
// 사용자 지정 언어 만들기
FREngine::ILanguageDatabasePtr pLanguageDatabase = Engine->CreateLanguageDatabase();
FREngine::ITextLanguagePtr pTextLanguage = pLanguageDatabase->CreateTextLanguage();
FREngine::IBaseLanguagesPtr pBaseLanguages = pTextLanguage->BaseLanguages;
FREngine::IBaseLanguagePtr pBaseLanguage = pBaseLanguages->AddNew();
// 알파벳 설정
pBaseLanguage->put_LetterSet( FREngine::BLLS_Alphabet, L"٠١٢٣٤٥٦٧٨٩" );
// 페이지에서 Layout 객체 가져오기
FREngine::ILayoutPtr layout = frPage->get_Layout();
// 블록 영역 설정
FREngine::IRegionPtr pRegion = Engine->CreateRegion();
pRegion->AddRect( 491, 314, 2268, 404 );
// 새 블록 만들기
FREngine::IBlockPtr newBlock = layout->Blocks->AddNew( FREngine::BT_Text, pRegion, 0 );
FREngine::ITextBlockPtr textBlock = newBlock->GetAsTextBlock();
// 사용자 지정 언어 설정
textBlock->RecognizerParams->TextLanguage = pTextLanguage;
// 텍스트 유형 지정
textBlock->RecognizerParams->TextTypes = FREngine::TT_Handwritten;
// 문자 주변의 표식 유형 지정
textBlock->RecognizerParams->FieldMarkingType = FREngine::FMT_SimpleText;
// 인식 및 내보내기
...
// 전역 ABBYY FineReader Engine 객체
FREngine.IEngine engine;
...
// 이미지 파일 열기
...
// 사용자 지정 언어 만들기
FREngine.ILanguageDatabase languageDatabase = engine.CreateLanguageDatabase();
FREngine.ITextLanguage textLanguage = languageDatabase.CreateTextLanguage();
FREngine.IBaseLanguages baseLanguages = textLanguage.BaseLanguages;
FREngine.IBaseLanguage baseLanguage = baseLanguages.AddNew();
// 알파벳 설정
baseLanguage.set_LetterSet( FREngine.BaseLanguageLetterSetEnum.BLLS_Alphabet, "٠١٢٣٤٥٦٧٨٩" );
// 페이지에서 Layout 객체 가져오기
FREngine.ILayout layout = frPage.Layout;
// 블록 영역 설정
FREngine.IRegion region = engine.CreateRegion();
region.AddRect( 491, 314, 2268, 404 );
// 새 블록 만들기
FREngine.IBlock newBlock = layout.Blocks.AddNew( FREngine.BlockTypeEnum.BT_Text, region, 0 );
FREngine.ITextBlock textBlock = newBlock.GetAsTextBlock();
// 사용자 지정 언어 설정
textBlock.RecognizerParams.TextLanguage = textLanguage;
// 텍스트 유형 지정
textBlock.RecognizerParams.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;
// 문자 주변의 표식 유형 지정
textBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;
// 인식 및 내보내기
...

참고 항목

RecognizerParams 손글씨 인식 언어 다루기