我目前正在尝试使用 Tesseract v5.5 模型来绕过这种验证码,但我没有成功。
在图像中,我们识别出验证码“w5779”,但在我使用 Tesseract 得到的最佳结果中,我只得到“w-”结果。
我尝试了几种基于图像处理技术的不同方法,以最大限度地减少刮擦噪音,但它们不起作用。以下是我尝试过的一些技术:
captcha_image = Image.open(captcha_image_path)
captcha_image_cv = np.array(captcha_image)
gray_image = cv2.cvtColor(captcha_image_cv, cv2.COLOR_BGR2GRAY)
threshold_image = cv2.adaptiveThreshold(gray_image, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
cv2.THRESH_BINARY_INV, 11, 2)
denoised_image = cv2.medianBlur(threshold_image, 3)
dilated_image = cv2.dilate(denoised_image, None, iterations=1)
processed_image = Image.fromarray(dilated_image)
captcha_text = pytesseract.image_to_string(processed_image, config="--psm 8")
有什么建议或其他工具推荐来绕过这种验证码吗?
Obs:这仅用于学习,因此我会尽量避免使用付费解决方案来解决验证码(如 2captcha 等)。
您无法使用 OCR 引擎解决验证码。 Tesseract 用于从图像中获取文本,图像越好,结果就越好。验证码是随机生成的字母和/或数字序列,显示为扭曲的图像。
您可以尝试使用机器学习,但它并不总是有效。 Python 中有这个项目机器学习验证码求解器。