我刚刚开始探索pytesseract。这就是我面临的问题:
我有以下输入图像。
现在,当我尝试在此上运行OCR时,我得到以下输出:
感谢您注册。现在你也是 可以挑选你最喜欢的枕头
选项AB
在多个图像样本上尝试后,我可以安全地得出以下结论:
即。在下图中:
我得到以下输出
感谢您注册。现在你也是 可以挑选你最喜欢的枕头
选
OPON
选项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 以及其他一些参数),但没有任何帮助。
答案 0 :(得分:0)
解决方案在这里找到:Pytesseract OCR multiple config options
我的代码最初与您的代码一样(第1行),并且遇到了相同的错误。对我有用的是在config参数中将psm = 10设置为允许单个字符识别。
代码有时返回None:
line 1 : text = pytesseract.image_to_string(cropped)
在下一行添加了代码:
line 2 : text = text if text else pytesseract.image_to_string(cropped, config='--psm 10')
第一行将尝试提取句子。如果成功,则第二行将值保持不变。但是,如果返回None,它将查找单个字符(允许输出较小的单词)。
或者,如果您只想捕捉小词:
line 1 : text = pytesseract.image_to_string(cropped, config='--psm 10')