软件星级:3分
网易滑块验证码自动识别易语言源码是一款滑块验证码源码。此款用易语言的位图,通过调用cdyecs.dll实现网易滑块验证码自动识别,有需要的用户欢迎在巴士下载站下载使用体验!
首先说下思路:
所有这种非字符串操作,而是图片操作的验证码一定都是在服务器添加好了静态的底图,什么意思呢?就是不管验证的位置怎么变化,但是它的背景图片一定是固定的那几张,可能有几十,几百个,所以我们只需要把验证码图片和完整的底图进行比较就能获得修改过的区域,这个思路应该也可以用在旋转图片拼图的验证码。
下面说下具体步骤:
1、获取验证码:极验的验证码在读取时会先向服务器发送一个获取验证码信息的请求,请求返回的是一段JS,JS里包括了,验证图地址,底图地址等信息
其中 fullbg是完整的图片,imgurl 是验证图片,sliceurl是移动的滑块图片,打开地址后就可以得到验证码图片了
2、验证码图片是被打乱了,用firbug查看页面元素发现时用css来还原的,都是简单的图片分割和移动,用易语言的位图很容易进行还原
3、处理图片进行识别,我用的最简单粗暴的方法,将两张图进行对比,相同点全部抹去,不同点全部变黑,当然这个验证码故意抠掉2个区域的图片来误导你,一块浅点的阴影,一块深,所以还要尽量排除掉另一个浅色部分,我的方法是 和同一点底图相比,浅色部分比深色部分的颜色相似度要高(色差低),所以我设定了一个色差的阀值,来排除一些点,对比处理图片后得到对比图1的效果
4、为了降低误差,再去掉杂点,将所有孤立的点(块)和垂直20像素内点数少于5个的点全部排除掉,获得了对比图2
5、计算距离:方法当然还是有很多,我用的方法是计算在一定区域内黑色点占的比例,比如40*40的区域内黑色点占的比例大于60%即认为这个区域左上的坐标是我们需要的坐标,坐标的Y就是我们要计算的距离,为了能直观的看到找到的位置,在计算的时候将找到的区域置为浅蓝色,浅蓝色左上角坐标的Y即距离。(注意:由于我们要找的是Y的距离,所以要纵向查找,这样才能找到最靠左边点的坐标)