- 对扫描图像或照片进行预处理
- 识别小文本片段
- 处理识别出的数据
场景实现
本主题中提供的代码示例仅适用于 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. 加载此场景的设置
步骤 3. 加载并预处理图像
步骤 3. 加载并预处理图像
ABBYY FineReader Engine 提供了一个用于处理多页文档的 FRDocument 对象。要加载文档图像并进行预处理,您应创建 FRDocument 对象并向其中添加图像。您可以执行以下任一操作:
- 使用 Engine 对象的 CreateFRDocumentFromImage 方法创建 FRDocument 对象。该方法会创建一个 FRDocument 对象,并从指定文件加载图像。
- 使用 Engine 对象的 CreateFRDocument 方法创建 FRDocument 对象,然后将文件中的图像添加到已创建的 FRDocument 对象中 (使用 FRDocument 对象的 AddImageFile、AddImageFileWithPassword 或 AddImageFileWithPasswordCallback 方法) 。
C#
C++ (COM)
第 4 步:设置要识别的字段
第 4 步:设置要识别的字段
现在,您需要创建包含这些字段的块,并为每个块指定块类型以及其中数据的已知特征。使用 Analyze 方法对文档执行版面分析,或者手动添加包含所需识别字段的块。有关说明,请参阅 Working with Layout and Blocks。现在,您可以为每个字段指定各自的识别参数。例如,如果某个字段包含文本,请使用 ITextBlock::RecognizerParams 属性:
- 借助 RecognizerParams 对象的 TextTypes 属性设置文本类型。例如,如果字段包含按邮政编码样式书写的数字,请使用 TT_Index 文本类型。
- 使用 SetPredefinedTextLanguage 方法设置语言。如果您已知字段中包含的信息类型,使用 special predefined languages (仅限 Windows) 会很有帮助。例如,如果字段包含美国地址,请选择 English_US_Address 预定义语言。这样可以提高文本识别的可靠性。
- 如果您需要使用识别变体来进一步验证结果 (如下文第 6 步所述) ,请设置 RecognizerParams 对象的 SaveCharacterRecognitionVariants 和 SaveWordRecognitionVariants 属性。请注意,此设置不适用于手写或手写体文本。
C#
C++ (COM)
步骤 5. 识别
步骤 5. 识别
步骤 6. 处理识别后的数据
步骤 6. 处理识别后的数据
使用 Text 对象访问识别出的文本片段 (可通过文本块的 ITextBlock::Text 属性获取该对象) 。使用 Paragraphs 属性获取该片段中的段落集合,并使用 IParagraphs::Item 方法访问各个段落。IParagraph::Text 属性可用于访问段落中识别出的文本。你还可以使用 IParagraph::Words 获取段落中的单词集合。使用 IWords::Item 方法访问集合中的各个单词。IWord::Text 属性返回包含该识别单词的行。使用 Word 对象的 GetRecognitionVariants 方法,或 Paragraph 对象的 GetWordRecognitionVariants 方法,可获取某个单词的识别变体。可通过 Paragraph 对象的 GetCharParams 方法访问单个字符的属性。该方法可访问 CharParams 对象,其中包含识别出的字符参数。字符的识别变体可通过 ICharParams::CharacterRecognitionVariants 属性获取。有关文本处理的详细信息,请参阅 Working with Text。有关在投票算法中使用 Engine 的信息,请参阅 Using Voting API。完成对 FRDocument 对象的操作后,请释放该对象使用的所有资源。请使用 IFRDocument::Close 方法。
步骤 7. 卸载 ABBYY FineReader Engine
步骤 7. 卸载 ABBYY FineReader Engine
所需资源
其他优化
- 识别
- 处理识别后的数据
- 处理文本
处理识别后的文本、段落、单词和字符。 - 使用 Voting API
处理单词和字符识别的备选结果。
- 处理文本
