学习图片处理和简单的验证码识别
Posted 老蔡的Python编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习图片处理和简单的验证码识别相关的知识,希望对你有一定的参考价值。
在前面一课中讲了控制浏览器登陆违章查询系统,在需要输入验证码的时候,需要手工在程序中输入获取的验证码,这一次我们看看能否自动识别。
识别验证码,有两个思路,一个思路是使用OCR软件,一个是使用人工智能AI去搞定。AI这条路,会在进阶篇中探讨,这里只要讲OCR方案。
OCR这个方案,应该都有过体验,一篇文章需要输入电脑,安装一个OCR软件就能搞定。不过,对于OCR,我一直没有啥好的体验,估计我用的都是很差的那种。
我们仍然按照准备、实施、总结的节奏开始这个课程
一、知识及环境准备
对于python,我们引入的是tesseract-ocr 3.05.01,参见百度经验的这个帖子 https://jingyan.baidu.com/article/219f4bf788addfde442d38fe.html,先安装起来。
二、识别的过程
识别验证码通常是这几个步骤:
1、灰度处理
2、二值化
3、去除边框(如果有的话)
4、降噪
5、切割字符或者倾斜度矫正
6、训练字体库
7、识别
这里,参见这个帖子就好 https://www.cnblogs.com/qqandfqr/p/7866650.html
可是,非常不幸,公安系统的验证码是比较高级的,字符完全粘连,很难切割成单独字符再训练,OCR这条路是个死胡同。
怎么办呢,后面的进阶篇,会讲使用Tensorflow框架的AI方案,到那个时候我们再来挑战。
三、总结和提高
在这一课里,我们主要是学习了图片的基本处理,复习下:
import Image #引入一个图片处理模块
import pytesseract #引入OCR模块
im = Image.open('XX.JPG') #读取一个图片 aa = pytesseract.image_to_string(out) #OCR识别
print(aa)
以上是关于学习图片处理和简单的验证码识别的主要内容,如果未能解决你的问题,请参考以下文章
爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别