此页面介绍了 Tesseract OCR 中的输出渲染系统。输出渲染器将识别的文本和布局信息转换为各种格式,例如纯文本、HTML、PDF 和 XML。有关识别过程本身的信息,请参阅识别引擎。有关用于调用渲染器的 API 的详细信息,请参阅TessBaseAPI。
Tesseract 中的输出渲染器系统提供了一个灵活的框架,用于将 OCR 结果转换为不同的输出格式。该系统通过类层次结构工作,其中包含一个基渲染器类和用于各种输出格式的专用子类。
来源
渲染器系统围绕抽象基类TessResultRenderer构建,该类定义了所有特定格式渲染器实现的核心接口和功能。
渲染过程遵循特定的生命周期
来源
Tesseract 提供了多种内置渲染器,支持各种输出格式
生成纯 UTF-8 文本输出。这是最简单的渲染器,输出识别的文本,不包含格式或布局信息。
TessTextRenderer text_renderer("output_basename");
来源
生成带有 OCR 功能的 HTML 输出。HOCR 是一种基于 HTML 的格式,可以保留布局信息、边界框和置信度值,使其适合于后期处理和高亮显示。
TessHOcrRenderer hocr_renderer("output_basename", true); // true enables font information
来源
生成可搜索的 PDF 文档。此渲染器将识别出的文本叠加在原始图像之上,允许文本搜索、选择和复制,同时保留原始外观。
TessPDFRenderer pdf_renderer("output_basename", "/path/to/tessdata", false); // false means include images
PDF 渲染器是 Tesseract 中最复杂的渲染器之一,它负责
来源
生成 ALTO XML 输出。ALTO(Analyzed Layout and Text Object)是一种用于存储具有详细布局信息的 OCR 结果的 XML 格式,广泛应用于数字图书馆。
TessAltoRenderer alto_renderer("output_basename");
来源
生成制表符分隔值输出。此格式对于数据提取和分析很有用,它以表格格式提供识别的文本以及相关的坐标和置信度值。
TessTsvRenderer tsv_renderer("output_basename");
来源
Tesseract 还包括其他一些专用渲染器
来源
Tesseract 渲染器系统的一个强大功能是能够将多个渲染器链接在一起,在一次 OCR 扫描中生成多种输出格式。
链式调用是通过insert()方法实现的
来源
渲染器通过ProcessPages()和ProcessPage()方法与 TessBaseAPI 集成
C API 还提供了创建和使用渲染器的便捷函数
来源
PDF 渲染器是 Tesseract 中最复杂的渲染器之一,值得特别关注。它通过将文本叠加在原始图像上来创建可搜索的 PDF。
PDF 渲染器构建一个 PDF 文档,包含
对于每一页,渲染器都会
PDF 渲染器根据 OCR 结果仔细定位文本,处理
这确保了文本叠加与图像对齐,从而实现准确的文本选择和搜索。
来源
要以编程方式使用渲染器,请遵循以下步骤
示例代码
来源
要创建自定义渲染器,您需要
示例骨架
来源
Tesseract 中的输出渲染器系统提供了一个灵活且可扩展的框架,用于将 OCR 结果转换为各种格式。通过了解基本架构和可用渲染器,您可以有效地将 Tesseract 的 OCR 功能集成到您的应用程序和工作流程中。
渲染器链式调用的能力使得在一次 OCR 扫描中生成多种输出格式成为可能,从而提高了效率。此外,模块化设计还使得在需要时可以为专用格式创建自定义渲染器。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(d39177)