(Py)Tesseract 无法从简单图像中读取文本
(Py)Tesseract failing to read text from simple image
Sample Image
PyTesseract(tesseract 4.0)只是拒绝吐出任何预测,无论我使用什么 -psm 值,无论图像大小有多大或多小,是否使用高斯 and/or 中值模糊.我已经尝试了所有我读过的可以提高图像识别度的方法,甚至使用了用图片中的 EXACT 字体制作的 .traineddata 文件。
我还能做什么?这似乎是一个非常简单的图像...我在做傻事吗?
摘录(不包括一些模糊尝试):
import cv2
import pytesseract
def load(name):
return cv2.imread('resources/' + name)
img = load('2048.png')
img = cv2.resize(img, (1500, 1500))
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(img, 220, 255, cv2.THRESH_BINARY_INV)
cv2.imshow('f', thresh)
print(pytesseract.image_to_string(thresh, lang='Clear', config='-psm 7'))
while True:
if cv2.waitKey(0) == ord('q'):
break
cv2.destroyAllWindows()
Clear 是我的 .traineddata 文件,我也试过 eng。
如前所述,我也尝试了所有 psm 配置。
我自己解决了。问题是图像太大。我的印象是越大越好,从我读到的内容来看这似乎是真的,但我决定缩小尺寸以查看这是否是一个问题。它是!现在一切正常。
Sample Image
PyTesseract(tesseract 4.0)只是拒绝吐出任何预测,无论我使用什么 -psm 值,无论图像大小有多大或多小,是否使用高斯 and/or 中值模糊.我已经尝试了所有我读过的可以提高图像识别度的方法,甚至使用了用图片中的 EXACT 字体制作的 .traineddata 文件。
我还能做什么?这似乎是一个非常简单的图像...我在做傻事吗?
摘录(不包括一些模糊尝试):
import cv2
import pytesseract
def load(name):
return cv2.imread('resources/' + name)
img = load('2048.png')
img = cv2.resize(img, (1500, 1500))
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(img, 220, 255, cv2.THRESH_BINARY_INV)
cv2.imshow('f', thresh)
print(pytesseract.image_to_string(thresh, lang='Clear', config='-psm 7'))
while True:
if cv2.waitKey(0) == ord('q'):
break
cv2.destroyAllWindows()
Clear 是我的 .traineddata 文件,我也试过 eng。 如前所述,我也尝试了所有 psm 配置。
我自己解决了。问题是图像太大。我的印象是越大越好,从我读到的内容来看这似乎是真的,但我决定缩小尺寸以查看这是否是一个问题。它是!现在一切正常。