【问题标题】:Tesseract unable to read the digits in an image (Captcha)Tesseract 无法读取图像中的数字(验证码)
【发布时间】:2020-12-20 20:40:41
【问题描述】:

我有这张图片: Unprocessed Image 从下面的代码中,我能够将其转换为: Processed Image

图片编号:8276 但我的代码将其读取为 776

我怎样才能成功地使我的代码能够将其读取为 8276? 我对这个图像处理/cv2/pytesseract 非常陌生,经过太多搜索才能够走到这一步。

import cv2
import pytesseract
from PIL import Image

pytesseract.pytesseract.tesseract_cmd = r'C:\Users\hamza.rana\AppData\Local\Tesseract-OCR\tesseract.exe'

image = cv2.imread('captcha.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
gray = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]
gray = cv2.medianBlur(gray, 3)
gray = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)
filename = "{}.png".format("temp")
cv2.imwrite(filename, gray)
text = pytesseract.image_to_string(Image.open('temp.png'),config='--psm 13 --oem 3 -c tessedit_char_whitelist=0123456789')
print(text)

【问题讨论】:

    标签: python python-imaging-library captcha cv2 python-tesseract


    【解决方案1】:

    Tesseract 的开箱即用培训最适合字体,并且(根据我的经验)在手写体上效果不佳,并且忘记了长手写体。

    当事情变得紧张时,稍微有帮助的事情是将边框扩大几个像素。但是从一个凌乱的验证码开始......这是你可能需要训练模型的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多