对于复杂的验证码,位置随机、扭曲、模糊、干扰项、gif验证码、汉字等。。。。
对于复杂背景的,但是字体是统一颜色的,我们可以统计每个像素点的值,然后统计出峰值的4个,之后把峰值之外的点全部转为白色,峰值的4种色转为黑色。(具体情况具体定)
大部分验证码都是可以用黑白的方法把底纹给去掉的,比如,这个大家常见的效验码,去了底纹之后的效果为上图,可以看到还是有一些干扰点,我们可以用代码把这些孤立的干扰点去掉(去的力度可以自己确定),去了干扰点的效果为上图,接下来这些字符都是很规整的字符了
看上图优化后的目标,这两个6是一样的,加上一些补偿,提取到模板,接下来就很容易破解了,可以看到左图的M有些模糊了,其实能达到90%的概率就可以了
如果遇到gif类型的效验码,忘记哪个网站了,但是我确定我见过,这种校验码其实也类似,关键就是从gif中提取到效验码图片