【问题标题】:Is there a way to use tesseract for single digit numbers?有没有办法将 tesseract 用于个位数?
【发布时间】:2015-02-19 06:45:44
【问题描述】:

TL;DR tesseract 似乎无法识别由单个数字组成的图像。是否有解决方法/原因?

我正在使用 tesseract(仅数字版本)自动将发票输入系统。但是,我注意到 tesseract 似乎无法识别单个数字,如下所示:

裁剪后的原始扫描是:

在我做了一些图像增强后:

如果它至少有两个数字,它就可以正常工作:

我已经测试了其他几个数字:

不工作: , ,

工作: , ,

如果有帮助,出于我的目的,对 tesseract 的所有输入都已像上面一样被裁剪和旋转。我使用 pyocr 作为我的项目和 tesseract 之间的桥梁。

【问题讨论】:

    标签: tesseract


    【解决方案1】:

    以下是配置 pyocr 以识别单个数字的方法:

    from PIL import Image
    import sys
    import pyocr
    import pyocr.builders
    
    tools = pyocr.get_available_tools()
    if len(tools) == 0:
        print("No OCR tool found")
        sys.exit(1)
    tool = tools[0]
    
    im = Image.open('digit.png')
    builder = pyocr.builders.DigitBuilder()
    
    # Set Page Segmentation mode to Single Char :
    builder.tesseract_layout = 10 # If tool = tesseract
    builder.tesseract_flags = ['-psm', '10'] # If tool = libtesseract
    
    result = tool.image_to_string(im, lang="eng", builder=builder)
    

    【讨论】:

      【解决方案2】:

      单个数字的处理方式与其他字符相同,因此更改页面分割模式应该有助于正确拾取数字。

      另请参阅: Tesseract does not recognize single characters

      【讨论】:

      【解决方案3】:

      PageSegMode 设置为PSM_SINGLE_CHAR

      【讨论】:

        猜你喜欢
        • 2011-06-22
        • 2022-10-20
        • 1970-01-01
        • 2021-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-17
        • 1970-01-01
        相关资源
        最近更新 更多