【问题标题】:Pytesseract doesnt recognize simple text in imagePytesseract 无法识别图像中的简单文本
【发布时间】:2026-01-30 04:00:02
【问题描述】:

我想识别这样的图像:

我正在使用以下配置:

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

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

1581

1

W

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

【问题讨论】:

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

标签: python image image-processing ocr python-tesseract


【解决方案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()

【讨论】:

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