无法使用openCV从图像中提取每一个文本。

问题描述 投票:0回答:1

我试图使用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重新提取。

enter image description here

在下面的图片上,Cloud Vision API和Pytesseract都无法提取出正确的文字。对于第一张图片,我得到的是 "off club price",而对于第二张图片,则是""。enter image description hereenter image description here

如果有什么其他的方法可以在python中读取文本,比这个更好或更简单,请分享。

python opencv machine-learning ocr python-tesseract
1个回答
0
投票

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

这是更好的。

© www.soinside.com 2019 - 2024. All rights reserved.