二值化过QQ滑块验证「源码分享」

测试设备:雷电模拟器 540*960 dpi 240


基本原理:

把滑块验证图片转化成0和1的二值化图片,也就是黑白图


二值化过QQ滑块验证「源码分享」

原图

二值化过QQ滑块验证「源码分享」

二值化后的图片


然后找滑块序列,匹配成功,就找到滑块位置了


二值化过QQ滑块验证「源码分享」


代码分享:


Dim r,g,b,m,s,y,k,d,GetColor

dim p=0

Dim q=0


KeepCapture

For j= 195 To 479

For i = 21 To 518

GetColor = GetPixelColor(i,j)

ColorToRGB(GetColor,r,g,b)

y=r+g+b

If 384 - y > 50 Then

k =0

Else

k=1

End If

d=d&k

Next

s = InStr(260, d, "100000000000000000000000000000000000000000000000000000000000000001")

m = InStr(260, d, "10000000000000000000000000000000000000000000000000000000000000001")

If 0

p = p + 1

If p = 6 Then

Exit For

End If

End If

If 0

q = q + 1

If q = 6 Then

Exit For

End If

End If

d=""

Next

ReleaseCapture

TracePrint s,m

If s > m Then

For i = 0 To 5

TracePrint s+21

Next

else

For i = 0 To 5

TracePrint m+21


Next

End If


我在写这个代码的时候,发现每张图的滑块也有差别,一共找到两个滑块序列,所以后期我在代码优化上面做了两个序列值。


相较于我的实战第一课的过滑块方法,这种方法更加便捷,不用获取所有验证图的原图。


同时识别速度很快,不到1秒钟。

"


分享到:


相關文章: