我试图使用openCV和Pytesseract从图像中读取文本,但似乎我无法读取图像中写的所有内容,无论是作为纯文本还是标志之上的东西。
我做了这样的事情:-
img = cv2.imread(image_path)
bw_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('B/W Image', bw_img)
cv2.waitKey(0)
print(pytesseract.image_to_string(bw_img, lang='eng'))
cv2.destroyAllWindows()
和我得到的回报作为输出:-。
支持当地企业&捐赠给'COVID-19危机应对基金frie大埃文斯维尔地区。
支持
本地
我已经附上了我试图读取文字的图片,你可以看到矩形按钮标志内的文字 "ORDER HERE "无法被openCV重新提取。
在下面的图片上,Cloud Vision API和Pytesseract都无法提取出正确的文字。对于第一张图片,我得到的是 "off club price",而对于第二张图片,则是""。
如果有什么其他的方法可以在python中读取文本,比这个更好或更简单,请分享。
Tesseract似乎不太喜欢白色文本。以下是我对着你的最后两张图片运行时得到的结果。
import cv2
import pytesseract
img = cv2.imread('599.jpg', 0)
# img = 255 - img #invert image
print(pytesseract.image_to_string(img, lang='eng', config = '--psm 12'))
print('====================================================')
img = cv2.imread('25off.jpg', 0)
# img = 255 - img #invert image
print(pytesseract.image_to_string(img, lang='eng', config = '--psm 12'))
产。
so
“I
99
====================================================
vs
25
off
(OP om ilo)
并非完全的灾难,但不是很大。现在如果你把 img = 255 - img
行,你会把图像反转,输出就变成。
5
I)
99
====================================================
%
25
off
Club Price
这是更好的。