> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 手書きのアラビア数字を認識する

> 10 桁の数字アルファベット (٠١٢٣٤٥٦٧٨٩) と TT_Handwritten テキストタイプを使用するカスタムテキスト言語を作成して、ABBYY FineReader Engine で手書き風のアラビア数字を認識します。

ABBYY FineReader Engine は現在、アラビア語の ICR をサポートしていません。ただし、アラビア数字に限れば認識可能であり、この記事ではそのために必要な手順を説明します。

[手書き文字の認識](/ja/fine-reader/engine/guided-tour/advanced-techniques/recognizing-handwritten-texts) で説明している手順に加え、アラビア数字を認識するには、10 個の数字記号のみで構成されるアルファベットを持つカスタム言語を作成し、それを数字を含む各ブロックの認識言語として設定する必要があります。

したがって、手書きのアラビア数字を認識するには、次の手順を実行します。

1. [LanguageDatabase](/ja/fine-reader/engine/api-reference/language-related-objects/languagedatabase) オブジェクトの [CreateTextLanguage](/ja/fine-reader/engine/api-reference/language-related-objects/languagedatabase/createtextlanguage-method) メソッドを使用して、新しいテキスト言語を作成します。
2. TextLanguage オブジェクト内の [BaseLanguage](/ja/fine-reader/engine/api-reference/language-related-objects/baselanguage) オブジェクトの [LetterSet](/ja/fine-reader/engine/api-reference/language-related-objects/baselanguage/letterset-property) プロパティを使用して、次の文字を含む言語アルファベットを設定します: ٠١٢٣٤٥٦٧٨٩。
3. 手書きのアラビア数字を含む各ブロックについて、[ITextBlock::RecognizerParams](/ja/fine-reader/engine/api-reference/layout-related-objects/textblock#recognizerparams) プロパティを使用して認識パラメーターを指定します。
   * [RecognizerParams](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams) オブジェクトの [TextLanguage](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams#textlanguage) プロパティを、前の手順で作成した言語に設定します。
   * RecognizerParams オブジェクトの [TextTypes](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams#texttypes) プロパティを TT\_Handwritten に設定します。
   * 数字が枠やボックスなどで囲まれている場合は、RecognizerParams オブジェクトの [FieldMarkingType](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams#fieldmarkingtype) プロパティで、文字の周囲のマーキングの種類を設定します。各数字が別々のセルに記入されている場合は、[CellsCount](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams#cellscount) プロパティも使用して、ブロック内の文字セル数を設定します。

<div id="windows-samples">
  ## Windows サンプル
</div>

<Accordion title="C++ (COM) コード">
  ```cpp theme={null}
  // グローバル 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;
  // 認識してエクスポートする
  ...
  ```
</Accordion>

<Accordion title="C# コード">
  ```csharp theme={null}
  // グローバル 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;
  // 認識してエクスポートする
  ...
  ```
</Accordion>

<div id="see-also">
  ## 関連項目
</div>

[RecognizerParams](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams)

[手書き文字の認識](/ja/fine-reader/engine/guided-tour/advanced-techniques/recognizing-handwritten-texts)

[言語の使用](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-languages)
