【发布时间】:2018-03-29 14:58:59
【问题描述】:
我刚刚开始探索 pytesseract。这是我面临的问题:
我有以下输入图像。
现在,当我尝试对此运行 OCR 时,我得到以下输出:
感谢您的注册。现在你也是 可以挑选你喜欢的枕头
选项 AB
在对多个图像样本进行尝试后,我可以安全地得出以下结论:
- 它不是非字典词惩罚。
- 它省略了简短的单词。几乎就好像它有一个正在生效的最小宽度,并且正在否决任何宽度小于该宽度的行。
- 仅当输入图像周围有边界矩形时才会发生这种情况。如果我从输入图像中删除它,我会得到正确的输出。
即如下图:
我得到以下输出
感谢您的注册。现在你也是 可以挑选你喜欢的枕头
选项
打开
选项 AB
我无法弄清楚我哪里出错了。这是我正在使用的代码:
from PIL import Image
import pytesseract
import argparse
import cv2
image = cv2.imread('testImage.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
gray = cv2.threshold(gray, 240, 255, cv2.THRESH_BINARY)[1]
filename = "intermediate.png"
cv2.imwrite(filename, gray)
im = Image.open(filename)
text = pytesseract.image_to_string(im)
print(text)
我也尝试过修改一些配置参数(crunch_del_min_width、language_model_min_compound_length 和其他一些参数),但没有任何帮助。
【问题讨论】:
标签: python-2.7 opencv ocr tesseract python-tesseract