简单的验证码识别(PIL+pytesseract+request)

  最近打算学django框架,一些好玩的东西就放在周末玩玩。所以更这种小工具之类的好玩的东西就延后点啦(つ´ω`)つ。最近尝试做了一个超级简单的验证码识别。

  首先呢,要安装一个很重要的工具,tesseract(安装过程,然后安装pytesseract库,在cmd中输入pip install pytesseract即可,不建议安装tesserocr库,windows系统不太兼容,本人之前安装过一次tesserocr库,不仅有点小麻烦(其实也不是多麻烦,只是无法直接pip install tesserocr安装该库,要去官网下载whl文件,然后再在cmd中安装),主要是只要import后运行就报错UnicodeError(╯‵□′)╯︵┻━┻,在网上也没找到什么解决方法,这里就放弃使用tesserocr库了。

  在安装pytesseract之后,我们就可以开始尝试啦。

  之前登陆学校教务系统的时候就觉得学校的验证码简单,应该很容易识别。于是打算用教务系统练练手(´・ω・`)

  不多说,上代码…

  纳尼,我代码呢?(*´・д・)?

  代码,,,代码被我删了(因为是几天做的,当时没有写博客。)

  真是个坏习惯。(๑´ㅁ`)ゞ

  这里简单的说下思路吧。

  敲重点了!

自己找个网站,按F12查看验证码的src="xxxx"中的内容,复制后加在网站的后面,为了便于查看每次识别的二维码图片和识别结果是否相同,下载图片。(纳尼,你不会下载图片?那我就勉为其难的告诉你下载图片吧),使用pytesseract.image_to_string(image)方法,直接将图片的下载路径传到image中。最后直接print就可以啦

这是之前做完代码后的结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
正确率 还可以?????(可以尼玛,识别都能识别歪来,不是len啊(╬゚ ◣ ゚),本来就是一个库?哦,那没事了。)

想提高识别率嘛?(`・ω・´)
最简单的方法嘛,用PIL或者opencv库对图片进行去噪,灰度和二值化处理后,会增加识别率,尤其是那种比较难的验证码,噪点比较多,颜色也多,容易对识别结果造成影响。

其他的方法就是对这个库进行训练,可以提高识别率,不过具体的训练方法本人还在摸索。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值