- 对扫描图像或照片进行预处理
- 识别文档图像中尽可能多的文本
场景实现
本主题中提供的代码示例仅适用于 Windows。
步骤 1. 加载 ABBYY FineReader Engine
步骤 1. 加载 ABBYY FineReader Engine
要开始使用 ABBYY FineReader Engine,您需要创建 Engine 对象。Engine 对象是 ABBYY FineReader Engine 对象层次结构中的顶层对象,提供各种全局设置、部分处理方法以及用于创建其他对象的方法。要创建 Engine 对象,可以使用 InitializeEngine 函数。另请参阅加载 Engine 对象的其他方式 (Win) 。
C#
C++ (COM)
步骤 2. 加载场景设置
步骤 2. 加载场景设置
在 ABBYY FineReader Engine 中,可使用 Engine 对象的 LoadPredefinedProfile 方法,为此场景选择最合适的设置。该方法接收配置文件名称作为输入参数。更多信息,请参见 Working with Profiles。ABBYY FineReader Engine 为此场景提供 2 种设置变体:
如果您想更改处理设置,请使用相应的参数对象。更多信息,请参见下文的 针对特定任务的附加优化。
配置文件名称 | 说明 |
|---|---|
TextExtraction_Accuracy | 这些设置已针对准确性进行优化:
|
TextExtraction_Speed | 这些设置已针对处理速度进行优化:
|
C#
C++ (COM)
步骤 3. 加载并预处理图像
步骤 3. 加载并预处理图像
ABBYY FineReader Engine 提供 FRDocument 对象,用于处理多页文档。要加载单个文档的图像并进行预处理,您应创建 FRDocument 对象并向其中添加图像。您可以采用以下任一方式:
- 使用 Engine 对象的 CreateFRDocumentFromImage 方法创建 FRDocument 对象。该方法会创建 FRDocument 对象,并从指定文件加载图像。
- 使用 Engine 对象的 CreateFRDocument 方法创建 FRDocument 对象,然后从文件向已创建的 FRDocument 对象添加图像 (使用 FRDocument 对象的 AddImageFile、AddImageFileWithPassword 或 AddImageFileWithPasswordCallback 方法) 。
C#
C++ (COM)
步骤 4. 文档识别
步骤 4. 文档识别
要识别文档,应使用 FRDocument 对象的分析和识别方法。该对象提供了整套文档分析和识别方法。若要仅通过一次调用就完成文档分析、识别和合成,最便捷的方法是使用 Process 方法。它还能以最高效的方式利用多处理器和多核系统的并行处理能力。不过,您也可以使用 Preprocess、Analyze、Recognize 和 Synthesize 方法,按顺序执行预处理、分析、识别和合成。
C#
C++ (COM)
步骤 5. 搜索重要信息
步骤 5. 搜索重要信息
在分析过程中,ABBYY FineReader Engine 会选取包含文本、表格、图片等内容的图像块。在识别过程中,包含文本数据的块会填充为识别出的文本。在 ABBYY FineReader Engine 中,Layout 对象用于存储块和识别出的文本。文档处理的主要场景是在 FRDocument 对象中处理 layout,该对象表示正在处理的文档。要访问文档页面的 layout,请使用 IFRPage::Layout 属性。要搜索关键词,您可以通过 Text 对象查看识别出的文本;该对象可通过文本块、表格块或条码块的属性访问。找到的重要数据可根据需要保存或进一步处理。更多详细信息,请参见下方的 针对特定任务的附加优化。
(可选)步骤 6. 文档导出
(可选)步骤 6. 文档导出
此外,您可能希望将提取出的文本保存为便于搜索的格式 (如 TXT) ,或保存为结构化格式 (如 JSON) ,以便后续轻松检索所需信息。使用 FRDocument 对象的 Export 方法,并将相应的 FileExportFormatEnum 常量作为其中一个参数。您可以使用相应的导出对象更改默认导出参数。更多信息,请参见下方的 针对特定任务的附加优化。完成对 FRDocument 对象的操作后,请释放该对象使用的所有资源。请使用 IFRDocument::Close 方法。
C#
C++ (COM)
步骤 7. 卸载 ABBYY FineReader Engine
步骤 7. 卸载 ABBYY FineReader Engine
必需资源
针对特定任务的附加优化
-
扫描 - 仅限 Windows
- 扫描
ABBYY FineReader Engine 文档扫描场景说明。
- 扫描
-
识别
- 预处理、分析、识别和合成参数调优
使用分析、识别和合成参数对象自定义文档处理。
- 预处理、分析、识别和合成参数调优
-
识别手写文本
TextExtraction***配置文件不包含手写体或手写印刷体文本识别。如果您需要识别手写内容,请将 PageAnalysisParams 对象的 DetectHandwritten 属性设置为 TRUE。 -
PageProcessingParams 对象
此对象可用于自定义分析和识别参数。使用此对象,您可以指定需要检测的图像和文本特征 (反相图像、方向、条码、识别语言、识别误差范围) 。 -
SynthesisParamsForPage 对象
此对象包含负责在合成期间恢复页面格式的参数。 -
SynthesisParamsForDocument 对象
此对象可用于自定义文档合成:恢复其结构和格式。 -
MultiProcessingParams 对象 - 仅限 Linux 和 Windows
处理大量图像时,同时处理会很有帮助。在这种情况下,处理负载会在图像打开和预处理、版面分析以及识别期间分配到各个处理器核心上,从而加快处理速度。
读取模式 (同时或连续) 通过 MultiProcessingMode 属性设置。RecognitionProcessesCount 属性用于控制可启动的进程数量。 -
搜索重要信息
- 使用 Layout 和 Blocks
关于页面版面、块类型以及如何处理它们。 - Layout 对象
此对象的参数可用于访问页面版面以及文档识别后的文本。 - 处理 Text
处理已识别的文本、段落、单词和字符。
- 使用 Layout 和 Blocks
-
针对指定数据类型使用特殊参数重新识别文档
- 字段级识别
短文本片段识别场景说明。
- 字段级识别
-
保存数据
- 要保存已识别的数据,您可以使用 FRDocument 对象的 Export 或 ExportPages 方法,并将 FileExportFormatEnum 常量作为其中一个参数。
- 文档归档
保存文档电子副本的场景说明。
