我想用Pytesseract自动解决像这样的CAPTCHA(它们都有红色背景和白色字母)
我一直在尝试处理图像,以使Pytesseract能够读取它,但没有成功。很高兴收到您的想法来处理这张图片。这是我的代码:
import cv2
import pytesseract
tessdata_dir_config = '--tessdata-dir "C:\\Program Files\\Tesseract-OCR\\tessdata"'
pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
img = cv2.imread("captcha.png")
img = cv2.resize(img, None, fx=2, fy=2)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
adaptive = cv2.adaptiveThreshold(
gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 85, 20)
print((pytesseract.image_to_string(img, config=tessdata_dir_config)).strip())
print((pytesseract.image_to_string(gray, config=tessdata_dir_config)).strip())
print((pytesseract.image_to_string(adaptive, config=tessdata_dir_config)).strip())
cv2.imshow("Captcha", img) # Output: IMQW
cv2.imshow("Gray", gray) # Output: IMOW
cv2.imshow("Adaptive", adaptive) # Output: IMOW,
cv2.waitKey(7000)
我有一个三步解决方案
步骤1:调整大小
调整图像大小使OCR算法能够检测输入图像中的字符或数字笔划
第二步:结束
Closing是一种形态学操作,旨在去除输入图像中的小孔
如果我们仔细观察
Q
和W
字符由许多小孔组成步骤3:threhsall
我们将应用simple-threhsolding对图像进行二值化。我们的目标是从图像中去除任何遗留的瑕疵
结果:
代码:
相关问题 更多 >
编程相关推荐