有没有一种方法可以使用Tesseract来识别单个数字?

3
TL;DR:tesseract似乎无法识别由单个数字组成的图像。有没有解决方法或原因?
我使用(仅包含数字的版本)tesseract来自动输入发票到系统中。然而,我注意到tesseract似乎无法识别如下所示的单个数字:
扫描后的原始图片为:
经过一些图像增强后:
如果至少有两位数,则可以正常工作:
我已经在几个其他数字上进行了测试:
无法正常工作: , ,
可以正常工作:
如果有帮助的话,就像上面所示,我用pyocr作为我的项目与tesseract之间的桥梁,所有输入到tesseract的输入都已被裁剪和旋转。
3个回答

4

以下是如何配置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无法识别单个字符


请问您能否在这里查看一个与Tesseract相关的问题:https://dev59.com/ZGAKtIcB2Jgan1zneSex? - Istiaque Ahmed

0

PageSegMode设置为PSM_SINGLE_CHAR


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接