python图像验证码识别的基本流程

相信对于验证码大家都很熟悉了,它的功能就是为了防止机器人暴力破解,所以图片上会有很多干扰因素。之前有对于各种验证码进行过研究,图形和滑动验证码以及一些较为复杂的验证码。那今天我们就先来讨论下关于图像验证码识别的一些知识吧。

先来看看日常生活中我们常见的验证码都有哪些?

1噪点,就是验证码图片种有很多的小点点,而且有些噪点的颜色各异;

2字符的倾斜,验证码会不同程度的旋转或者倾斜,加大识别时候的难度。

3字符的粘连,这类型的大多数破解思路就是将图片上的验证码分割为一个个单独的字符然后进行识别,因此如果验证码中的字符粘连程度很高的时候,会很影响正确率的。而且有的两个字符由于粘连有很大的重叠部分,因此想要分割成单个的字符,还是有比较大的难度。

4干扰线,有的验证码会用一条线从左到右贯穿整个验证码字符,目的是使得验证码的字符成为一个整体,能有效防止别人通过像素将每个字符孤立出来。

这篇文章暂且分析这四种简单的验证码的识别过程:

验证码识别的主要分为两步:图片预处理和图像识别。具体步骤如下:

1图像灰度化、二值化,这一步方便后期处理,将图片中每个点的像素值只设为两种,要么为255要么为0,一种表示信息元素,一种表示背景。但是如果验证码是彩色的,而干扰因素比如噪点和干扰线可以通过颜色过滤,那么在灰度化、二值化之前还是需要先过滤掉干扰信息,具体情况具体分析,没有一个固定的顺序;

2图像降噪点,去除干扰线。主要通过一些滤波算法、降噪算法将验证码图片的干扰因素去掉;

3接下来就是字符分割,将图片上的字符分为单个的字符;

4字符归一化 ,将被旋转倾斜的字符恢复为正常的角度,并且将单个字符的图片经过缩放归一位固定大小;

5特征值提取,将归一后的字符图片,按照一定的算法,得到一组若干个特征值;

6训练,将一定规模的标记号的字符经过图片预处理后得到的特征值与其对应的字符内容,选择特定算法进行训练,得到训练模板;

7测试,再取若干分类好的数据,得到特征值然后用相关算法进行预测,得到的字符与自身的字符进行比对,得到准确率。广州中软卓越 广州Python培训www.gzetc.com.cn

你可能感兴趣的:(python图像验证码识别的基本流程)