使用Python和Tesseract OCR解决验证码
我不打算发垃圾邮件,而且谷歌已经用reCaptcha淘汰了captcha。我做这个项目是为了学习更多关于OCR的知识,最终可能是学习神经网络 所以我有一张来自验证码的图像,我已经取得了一些进展,但是关于tesseract的文档并没有很好的记录。这是我到目前为止的代码,结果如下使用Python和Tesseract OCR解决验证码,python,tesseract,Python,Tesseract,我不打算发垃圾邮件,而且谷歌已经用reCaptcha淘汰了captcha。我做这个项目是为了学习更多关于OCR的知识,最终可能是学习神经网络 所以我有一张来自验证码的图像,我已经取得了一些进展,但是关于tesseract的文档并没有很好的记录。这是我到目前为止的代码,结果如下 from selenium import webdriver from selenium.webdriver.common import keys import time import random import pyte
from selenium import webdriver
from selenium.webdriver.common import keys
import time
import random
import pytesseract
from pytesseract import image_to_string
from PIL import Image, ImageEnhance, ImageFilter
def ParsePic():
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
im = Image.open("path\\screenshot.png")
im = im.filter(ImageFilter.CONTOUR)
im = im.filter(ImageFilter.DETAIL)
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(4)
im = im.convert('L')
im.save('temp10.png')
text = image_to_string(Image.open('temp10.png'))
print(text)
我知道Captcha是专门用来打败OCR的,但我读到它不再是这样,我很想知道它是如何做到的
我的问题是,如何使背景颜色相同,使文本更容易阅读?回答晚了,但无论如何。。。
您正在进行边缘检测,但很明显,在这张图像中有很多,所以这将不起作用。
你得对颜色做些调整。
我不知道这是否适用于您的每个验证码,但您可以使用对比度。
您可以通过使用paint(或任何其他图像编辑程序)打开原始图像并将图像保存为“单色”(仅黑白,不灰度)来测试这一点
结果:
没有任何其他编辑!(连问号都没有了)
这将立即准备好进行OCR
也许你的其他图像不是那么容易,但颜色/对比度是你的选择。如果您需要了解如何使用颜色、对比度和其他方法来解决CAPTACH问题,您可以查看更难的示例,以及我是如何在此处解决这些问题的:
干杯