我不打算发送垃圾邮件,此外Google还使reCaptcha取代了验证码。我将其作为一个项目来学习有关OCR的更多信息,并最终了解神经网络。
所以我有一个来自Captcha的图像,我已经取得了适度的进步,但是关于tesseract的文档并没有得到很好的记录。这是我到目前为止的代码,结果如下。
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而设计的,但我读到情况已不再如此,我对学习如何做感兴趣。
我的问题是,如何使背景颜色相同,以便文本易于阅读?
答案 0 :(得分:0)
最新答案,但无论如何... 您正在执行边缘检测,但是很明显,此图像中有很多图像,所以这将无法工作。 您将不得不对颜色做一些事情。 我不知道您的每个验证码是否正确,但是您可以使用对比。 您可以通过使用油漆(或任何其他图像编辑程序)打开原稿并将其保存为“单色”(仅黑白,而不是灰度)来进行测试
这已经准备好立即进行OCR。
也许您的其他图像并不容易,但是颜色/对比度才是您的最佳选择。如果您需要有关如何使用颜色,对比度和其他方法来解决人为错误的想法,可以查看更困难的示例以及我如何在此处解决问题:https://github.com/cracker0dks/CaptchaSolver
欢呼