python Pytesseract 动态验证码图片识别

这篇博客中讲解了如何提取页面中的验证码图片,当图片为动态图片时pytesseract 时不能识别的,因此需要将动态图片转为静态图片,下面时实现代码

i = 0 
    try:
        while 1:
            new_im = Image.new("RGBA", img.size)
            new_im.paste(img)
            new_im.save(png\0000_+str(i)+.png)
            i += 1
            img.seek(img.tell() + 1)
    except EOFError:
        pass

动态图片实际上时多张静态图片滚动播放的效果,因此只要循环的取出每一帧即可。

pytesseract 的使用大家可以百度即可,安装即用,下面给出了一些学习参考

Pytesseract 还支持自己录入特殊字体,操作也很简单,可以自行百度

Pytesseract 识别验证码代码如下:

import pytesseract
from PIL import Image

image = Image.open("test.jpg")
code = pytesseract.image_to_string(image)
print(code)

特别说明一下: 数字字母验证码图片多数都是可以通过Pytesseract识别的,但是当字符之间有粘连的情况时Pytesseract 时无法识别,因此需要想办法先去除粘连和干扰线。

欢迎留言讨论

经验分享 程序员 微信小程序 职场和发展