メインコンテンツへスキップ
ABBYY FineReader Engine は現在、アラビア語の ICR をサポートしていません。ただし、アラビア数字に限れば認識可能であり、この記事ではそのために必要な手順を説明します。 手書き文字の認識 で説明している手順に加え、アラビア数字を認識するには、10 個の数字記号のみで構成されるアルファベットを持つカスタム言語を作成し、それを数字を含む各ブロックの認識言語として設定する必要があります。 したがって、手書きのアラビア数字を認識するには、次の手順を実行します。
  1. LanguageDatabase オブジェクトの CreateTextLanguage メソッドを使用して、新しいテキスト言語を作成します。
  2. TextLanguage オブジェクト内の BaseLanguage オブジェクトの LetterSet プロパティを使用して、次の文字を含む言語アルファベットを設定します: ٠١٢٣٤٥٦٧٨٩。
  3. 手書きのアラビア数字を含む各ブロックについて、ITextBlock::RecognizerParams プロパティを使用して認識パラメーターを指定します。
    • RecognizerParams オブジェクトの TextLanguage プロパティを、前の手順で作成した言語に設定します。
    • RecognizerParams オブジェクトの TextTypes プロパティを TT_Handwritten に設定します。
    • 数字が枠やボックスなどで囲まれている場合は、RecognizerParams オブジェクトの FieldMarkingType プロパティで、文字の周囲のマーキングの種類を設定します。各数字が別々のセルに記入されている場合は、CellsCount プロパティも使用して、ブロック内の文字セル数を設定します。

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 手書き文字の認識 言語の使用