C# のサンプルは、Windows 版 FRE にのみ適用されます。
ABBYY FineReader Engine の Intelligent Character Recognition (ICR) テクノロジーを使用すると、手書き文字および活字体の手書き文字を認識できます。
- 手書き文字または活字体の手書き文字の認識に対応している認識言語は、すべてではありません。定義済み言語の一覧を参照してください。
-
- ^ ™ © ® № § ¡ ¿ ‰ などの特殊記号は認識できません。
レイアウト解析中に、手書き文字および活字体の手書き文字を含むブロックを検出し、手書き文字タイプとして認識対象に指定できます。手書き文字または活字体の手書き文字を検出して認識するには、PageAnalysisParams プロパティの DetectHandwritten プロパティを TRUE に設定します。手書き文字は高精度解析モードでのみ検出できるため、SpeedQualityMode プロパティを SQM_Accurate に設定します。
手書き文字タイプと活字体の手書き文字タイプは、どちらも同じ TextTypeEnum::TT_Handwritten 定数で指定します。テキストブロックは、ITextBlock::RecognizerParams オブジェクトの TextTypes プロパティが TT_Handwritten に設定された状態で作成されます。
認識時には、認識言語が手書き文字をサポートしている場合は手書き文字として認識され、活字体の手書き文字のみに対応している場合は活字体の手書き文字として認識されます。
// グローバル 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 );
...
または、ITextBlock::RecognizerParams プロパティを使用して、手書き文字を含むブロックの認識パラメーターを手動で設定できます。
-
RecognizerParams オブジェクトの TextTypes プロパティを TT_Handwritten に設定します。
-
[任意] 活字体の手書き文字は、枠やボックスなどで囲まれていることがよくあります。この場合は、RecognizerParams オブジェクトの FieldMarkingType プロパティで、文字の周囲の枠線の種類を設定します。各文字が個別のセルに記入されている場合は、CellsCount プロパティを使用して、認識対象ブロック内の文字セル数を設定します。
// グローバル 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;
// 認識してエクスポートする
...
関連項目
RecognizerParams
定義済み言語の一覧