Pytesseract 无法识别图像中的简单文本

Posted

技术标签:

【中文标题】Pytesseract 无法识别图像中的简单文本【英文标题】:Pytesseract doesnt recognize simple text in image 【发布时间】:2021-11-14 06:40:58 【问题描述】:

我想识别这样的图像:

我正在使用以下配置:

config="--psm 6 --oem 3 -c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ,."

但是当我尝试转换它时,我得到以下信息:

1581

1

W

我认为图像非常清楚地显示了所写的内容,并认为 pytesseract 存在问题。你能帮忙吗?

【问题讨论】:

这也发生在我身上,有一次它给我显示了一颗星星作为一个点,而同一张图像中有这么多星星,不知道怎么回事......但我没有使用任何配置 @GhostOps 是的,但是有了这么干净的图像,这一定是可能的吧? 是的,不知道怎么了.. 【参考方案1】:

在执行 OCR 之前对图像进行预处理以获得二进制图像似乎可行。您也可以尝试调整图像的大小,以便看到更多细节

结果

158.1
1
IT
import cv2
import pytesseract

pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

# Grayscale and Otsu's threshold
image = cv2.imread('1.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]

# Perform text extraction
data = pytesseract.image_to_string(thresh, lang='eng', config='--psm 6')
print(data)

cv2.imshow('thresh', thresh)
cv2.waitKey()

【讨论】:

我调整了它的大小,现在它完美无缺

以上是关于Pytesseract 无法识别图像中的简单文本的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 pytesseract.image_to_string 从图像中读取文本

使用 PIL 从 url 打开图像文件以使用 pytesseract 进行文本识别

python pytesseract.image_to_string 无法读取图像中的文本

如何使用 Pytesseract 文本识别改进 OCR?

使用 Pytesseract OCR 识别表格图像中的特定数字

图像识别 (easyocr)