ocr - 为什么 tesseract 忽略图像的右侧部分?
问题描述
您好 OCR 爱好者,
我正在做一个阅读收据的项目。我已经清除了所有可能的噪音并将图像二值化。现在我的问题是,由于某种原因,图片的右侧部分(价格)无法识别。
搜索边界框,看起来 pytesseract 只是忽略了价格,我不知道为什么以及如何纠正这个问题:
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,但一次读取整个图像会更有效。
我想知道您对这种行为的看法?我怎样才能解决这个问题?
谢谢您的意见。
解决方案
推荐阅读
- ios - SceneKit 中的radialGravity 节点吸引然后排斥对象
- c# - Azure Key Vault 中的应用设置配置部分
- powershell - 部署应用程序清单
- python - Python说函数已经成功运行一次后,函数中没有定义paramiko客户端
- reactjs - 重定向组件问题和 URL 渲染
- python - 使用多阶段 Dockerfile,pip 轮仍然需要来自基础构建器的依赖项
- sql - 优化 DELETE 查询,其中行包含大数据(以 Base64 序列化的文件)
- python - 在时间序列上应用 LSTM 之前是否有必要丢弃异常值
- android - Android Auto Dekstop 主机 ANR:GET_APP_VERSION
- python - 从 TextWidget 获取输入时“\n”如何进入输出