跳转到主要内容
C# 示例仅适用于 Windows 版 FRE。
ABBYY FineReader Engine 的智能字符识别 (ICR) 技术可以识别手写体和印刷体文本。
  • 并非所有识别语言都支持手写体或印刷体文本识别。请参阅预定义语言列表
    • ^ ™ © ® № § ¡ ¿ ‰ 等特殊符号无法识别。
在版面分析期间,可以检测到包含手写体和印刷体文本的块,并将其标记为使用手写文本类型进行识别。要检测并识别手写体或印刷体文本,请将 PageAnalysisParamsDetectHandwritten 属性设置为 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 属性,手动为包含手写文本的块设置识别参数:
  1. RecognizerParams 对象的 TextTypes 属性设置为 TT_Handwritten。
  2. [可选] 手写的印刷体字母通常会被边框、方框等框起来。在这种情况下,请在 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 预定义语言列表