python3爬虫之验证码的识别——图形验证码

python

环境安装见博文《python3爬虫之验证码的识别——环境安装》

 

图形验证看似是最为简单的验证,但是因为涉及到了很多图像处理方面的知识,想要做一个通用的验证程序并不简单

并且tesserocr自带的训练库识别的效果真是差强人意啊

本例通过中国知网注册页面的验证码为例 http://my.cnki.net/elibregister/commonRegister.aspx

通过浏览器工具将验证码图片保存到python工程文件下

 

主要代码为(验证码图片不经过任何处理):

import tesserocr

from PIL import Image

image = Image.open(\'tzxw.jpg\')

image.show()

res = tesserocr.image_to_text(image)# 在pycharm中有兼容性问题

print(res)

ps:tesserocr.image_to_text( ) 这个方法可能在PyCharm里会标红,但是不影响运行

 

输出结果为空,即未识别出来,因此我们需要将图片处理一下,例如减少背景噪点、增加对比度之类

本例中采用设定一个阈值将图片转换为二值图

threshold = 135 # 阈值

table = []

for i in range(256):

if i < threshold:

table.append(0)

else:

table.append(1)

image = image.point(table,\'1\')

阈值设定的大小与识别结果息息相关,当然不同的图片可能会有不同的阈值才能识别出来。因此这个方法并不是一个通用的方法

本例中输出结果:

(二值图)

输出结果也是tzxw

 

but!

换了几张一样大小的图测试发现,阈值的选择各不相同,有的图片就是怎么都识别不了或者识别错误

 

以上是 python3爬虫之验证码的识别——图形验证码 的全部内容, 来源链接: utcz.com/z/386569.html

回到顶部