(一)python爬虫验证码识别(去除干扰线)
1.开发环境与工具
- python27:sklearn、pytesser、opencv等
- pycharm
- windows7
2. 数据集
用request库爬虫抓取某一网站验证码1200张,并做好标注
3.验证码识别大概步骤
- 转化成灰度图
- 去背景噪声
- 图片分割
(1)转化成灰度图
im = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
(2)去除背景噪声
验证码去除干扰线的思想可参考链接:验证码去除干扰线
本文所使用的去除背景噪声的方法:
认真观察我们的实验数据,发现根据线降噪方法来去除噪声是不可行的,因为我们的图片干扰线很粗,和数字差不多粗。那再认真观察一下,1个数字的颜色都是一个‘“色”,那么是否可以跟据颜色来分呢?
博主认真想了下,先转化成灰度图,再通过图像分割把图片分割一下,去除掉边框和部分噪声,这样就分成了4张图,然后统计每张图的灰度直方图(自己设置bins),找到第二大所对应的像素范围,即某一像素范围内像素数第二多所对应的像素范围(像素最多的应该是白色,空白处),取像素范围中位数mode,然后保留(mode±bi