初探验证码识别
这是我研究的第1种类型的幅验证码图片,虽然简单,但是大家可以看到验证码识别的一般过程
我们首先对其进行对比度调节,你会发现干扰圈不见了
我们对图片进行二值化,然后对字母进行边缘加强,然后去除噪点
接下来我们就对图片进行分割,得到单字符
然后对其进行区域扫描,根据所占区域的百分比,来算出字符的特征值(注:这里我没有对字符进行旋转处理,因为样本数不会很多,对于旋转处理,我会在下一个章节讨论)
例如6这个文字,特征码从下面可以看出:010100111101010
○■○
■○○
■■■
■○■
○■○
特征码的区域划分根据验证码的情况来划分,这里是划成了3*5的块。这样我们把很多样本的特征码保存起来,变成一个库,在一个未知的图片输入进来的时候,我们在列表中匹配,找到最相似的特征码,这样就知道图片是那个字符了。
我们希望的不是对单个验证码的识别,必须研究一套框架,便于识别大部分的验证码。

这里要注意,就是这里图片里的验证码情况比较简单,没有出现连字的情况,也就是说你可以很容易区分每个字符,例如像gmail这样的验证码,写这个验证码的工程师说,目前还没有发现能够达到写出识别这个验证码的人类。
另外这种识别验证码的方式还比较原始,使用的是模板匹配的方式,另外还有Bayes分类、几何分类、神经网络分类来识别验证码,我也会在以后的帖子中和大家一起探讨这些方法。



