【问题标题】:Tesseract OCR Read Horizontally rather than Vertically C#Tesseract OCR 水平读取而不是垂直读取 C#
【发布时间】:2017-09-01 18:00:47
【问题描述】:

我们有一个 C# .Net 应用程序,它使用 Tesseract 对 .tiff 文件进行光学字符识别 (OCR)。这是一个例子:

然后我们将数据输出到一个文本文件。但是,Tesseract 以垂直方式读取数据。在我的示例图像中,它将 tiff 作为两列数据读取,数据从 Tesseract 输出,如下所示:

类型: 日期: 地址: 城市: 状态: 所有者: 业主类型: 面积: 抵押: 12345 2017-04-06 主街 100 号 某市 某州 约翰·多伊 基本的 10.25 是的

我们想要的是 Tesseract 水平读取 tiff 文件并让输出看起来像这样:

类型:12345 日期:2017-04-06 地址:主街 100 号 城市:某个城市 状态:某个状态 所有者:John Doe 业主类型:主要 种植面积:10.25 抵押:是的

我们尝试了 Tesseract 的各种页面分割选项,但它们都产生了相同的结果。

有人遇到过同样的问题吗?有人有什么想法吗?

【问题讨论】:

    标签: c# ocr tesseract


    【解决方案1】:

    我找到了解决方案。 Tesseract 有一组配置文件。其中几个配置文件中包含设置 tessedit_pageseg_mode。此设置在所有配置文件中设置为 1。 1=Automatic page segmentation with OSD.OSD=Orientation and script detection.

    底线,这些配置文件设置覆盖了我们的命令行参数。一旦我从配置文件中删除了 tessedit_pageseg_mode 参数,我们的命令行参数

    -psm 6 工作并以所需格式生成输出数据。

    psm=Page Segmentation Mode. 6=Assume a single uniform block of text

    -psm 4 也有效

    psm=Page Segmentation Mode. 4=Assume a single column of text of variable sizes

    【讨论】:

      【解决方案2】:

      我知道这是一篇旧帖子,但我今天遇到了同样的问题。

      使用engine.SetVariable("tessedit_pageseg_mode", 6); 设置分段模式无效。

      由于某种原因,我没有在配置文件中找到它。

      解决方案:

      engine.DefaultPageSegMode = PageSegMode.SingleBlock;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-10
        • 2015-09-16
        • 1970-01-01
        • 1970-01-01
        • 2021-11-04
        相关资源
        最近更新 更多