首页 > 解决方案 > 为什么 tesseract 忽略图像的右侧部分?

问题描述

您好 OCR 爱好者,

我正在做一个阅读收据的项目。我已经清除了所有可能的噪音并将图像二值化。现在我的问题是,由于某种原因,图片的右侧部分(价格)无法识别。

搜索边界框,看起来 pytesseract 只是忽略了价格,我不知道为什么以及如何纠正这个问题: BoundingBoxesFoundBy Tesseract

    d = pytesseract.image_to_boxes(img, output_type=Output.DICT,config='-l eng')
n_boxes = len(d['char'])
for i in range(n_boxes):
    (text, x1, y2, x2, y1) = (d['char'][i], d['left'][i], d['top'][i], d['right'][i], d['bottom'][i])
    img= cv2.cvtColor(img,cv2.CV_8U)
    cv2.rectangle(img, (x1, height - y1), (x2, height - y2), (0, 255, 0),2)

cv2.imshow('imgBoundingBox', cv2.resize(img, (img.shape[1] // 4, img.shape[0] // 4)))

是不是产品名称后面的空格太大,所以在完成行之前要回车?

或者,我知道我可以创建一个裁剪的 ROI 列表,将其逐个传递给 tesseract,但一次读取整个图像会更有效。

我想知道您对这种行为的看法?我怎样才能解决这个问题?

这是原始的二进制图像: 原始二进制收据图像

谢谢您的意见。

标签: ocrpython-tesseract

解决方案


推荐阅读