> ## 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.

# 手書き文字の認識

> ABBYY FineReader Engine ICR を使用して、手書き文字および手書き風文字を認識します。DetectHandwritten を設定し、高精度解析を使用して、ITextBlock ブロックで TT_Handwritten テキストタイプを指定します。

<Note>
  C# のサンプルは、Windows 版 FRE にのみ適用されます。
</Note>

ABBYY FineReader Engine の Intelligent Character Recognition (ICR) テクノロジーを使用すると、手書き文字および手書き風文字を認識できます。

* 手書き文字または手書き風文字の認識に対応している認識言語は、すべてではありません。[定義済み言語の一覧](/ja/fine-reader/engine/specifications/predefined-languages)を参照してください。
* * ^ ™ © ® № § ¡ ¿ ‰ などの特殊記号は認識できません。

レイアウト解析中に、手書き文字および手書き風文字を含むブロックを検出し、手書き文字タイプとして認識対象に指定できます。手書き文字または手書き風文字を検出して認識するには、[PageAnalysisParams](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pageanalysisparams) プロパティの [DetectHandwritten](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pageanalysisparams#detecthandwritten) プロパティを TRUE に設定します。手書き文字は高精度解析モードでのみ検出できるため、[SpeedQualityMode](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pageanalysisparams#speedqualitymode) プロパティを SQM\_Accurate に設定します。

手書き文字タイプと手書き風文字タイプは、どちらも同じ [TextTypeEnum::TT\_Handwritten](/ja/fine-reader/engine/api-reference/enumerations/texttypeenum#tt_handwritten) 定数で指定します。テキストブロックは、[ITextBlock::RecognizerParams](/ja/fine-reader/engine/api-reference/layout-related-objects/textblock#recognizerparams) オブジェクトの [TextTypes](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams#texttypes) プロパティが TT\_Handwritten に設定された状態で作成されます。

認識時には、認識言語が手書き文字をサポートしている場合は手書き文字として認識され、手書き風文字のみに対応している場合は手書き風文字として認識されます。

<Accordion title="C# コード">
  ```csharp theme={null}
  // グローバル ABBYY FineReader Engine オブジェクト
  FREngine.IEngine engine;
  ...
  // 画像ファイルを開く
  ...
  FREngine.IFRDocument frdoc;
  // DocumentProcessingParams を作成し、パラメーターを設定する
  FREngine.IDocumentProcessingParams processingParams = engine.CreateDocumentProcessingParams();
  processingParams.PageProcessingParams.PageAnalysisParams.SpeedQualityMode = SQM_Accurate;
  processingParams.PageProcessingParams.PageAnalysisParams.DetectHandwritten = true;
  // 通常のテキストと手書き文字の両方を認識するようにテキストタイプを設定する
  processingParams.PageProcessingParams.RecognizerParams.TextTypes = TT_Normal | TT_Handwritten;
  // 処理にこのパラメーターを使用する
  frDoc.Process( processingParams );
  ...
  ```
</Accordion>

<div id="marking-up-blocks-manually">
  ## ブロックを手動でマークアップする
</div>

または、[ITextBlock::RecognizerParams](/ja/fine-reader/engine/api-reference/layout-related-objects/textblock#recognizerparams) プロパティを使用して、手書き文字を含むブロックの認識パラメーターを手動で設定できます。

1. [RecognizerParams](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams) オブジェクトの [TextTypes](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams#texttypes) プロパティを TT\_Handwritten に設定します。
2. \[任意] 活字体の手書き文字は、枠やボックスなどで囲まれていることがよくあります。この場合は、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) プロパティを使用して、認識対象ブロック内の文字セル数を設定します。

   <Accordion title="C# コード">
     ```csharp theme={null}
     // グローバル ABBYY FineReader Engine オブジェクト
     FREngine.IEngine engine;
     ...
     // イメージファイルを開く
     ...
     // ページから 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.TextTypes = (int)FREngine.TextTypeEnum.TT_Handwritten;
     // 文字の周囲の枠線の種類を指定する
     textBlock.RecognizerParams.FieldMarkingType = FREngine.FieldMarkingTypeEnum.FMT_SimpleText;
     // 認識してエクスポートする
     ...
     ```
   </Accordion>

   ## 関連項目

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

   [定義済み言語の一覧](/ja/fine-reader/engine/specifications/predefined-languages)
