|
本帖最后由 eaglesoftware 于 2020-4-11 20:37 编辑
记录某滑动验证码识别思路就是:
先确定滑动的距离,滑动距离 = 终点坐标 - 起点坐标 1、首先找到终点坐标
通过观察发现,终点位置有一个像素的边缘,边缘RGB值有一定规律,通过这个规律扫描很快能确定hk终点的x坐标。
变量名 | 类 型 | 静态 | 数组 | 备 注 | 位图 | 位图 | | | 图_宽度 | 整数型 | | | 图_高度 | 整数型 | | | x坐标 | 整数型 | | | y坐标 | 整数型 | | | 高度扫描范围 | 整数型 | | | 高度连续点数量 | 整数型 | | | 高度连续点数量最大值 | 整数型 | | | 高度连续点数量最大值_y坐标 | 整数型 | | | RGB | 字节集 | | | i | 整数型 | | | j | 整数型 | | | hk右边_x坐标 | 整数型 | | | hk左边_x坐标 | 整数型 | | | hk左边_x坐标疑似 | 整数型 | | |
图_宽度 = 图片_取宽度 (BMP图片xx )图_高度 = 图片_取高度 (BMP图片xx )如果 (位图. 创建 (图_宽度, 图_高度, 24, ) 且 位图. 载入xx (BMP图片xx )) 高度扫描范围 = 图_高度 - 136 计次循环首 (250, i ) x坐标 = 图_宽度 - i 高度连续点数量 = 0 高度连续点数量最大值 = 0 计次循环首 (高度扫描范围, j ) y坐标 = 40 + j RGB = 到字节集 (位图. 取某点颜色 (x坐标, y坐标 )) 判断 (RGB [1 ] > 250 且 RGB [2 ] > 230 ) 高度连续点数量 = 高度连续点数量 + 1 判断 (RGB [1 ] > 230 且 RGB [2 ] > 250 ) 高度连续点数量 = 高度连续点数量 + 1 判断 (RGB [2 ] > 252 且 RGB [3 ] > 252 ) 高度连续点数量 = 高度连续点数量 + 1 如果真 (高度连续点数量 > 高度连续点数量最大值 ) 高度连续点数量最大值 = 高度连续点数量 高度连续点数量最大值_y坐标 = y坐标 高度连续点数量 = 0 计次循环尾 ()如果真 (高度连续点数量 > 高度连续点数量最大值 ) 高度连续点数量最大值 = 高度连续点数量 高度连续点数量最大值_y坐标 = y坐标 如果真 (高度连续点数量最大值 > 2 )调试输出 (“x坐标”, x坐标, 高度连续点数量最大值 )如果真 (hk右边_x坐标 > 0 且 x坐标 < hk右边_x坐标 - 80 )hk左边_x坐标疑似 = x坐标 如果真 (高度连续点数量最大值 > 15 且 hk左边_x坐标 = 0 且 hk右边_x坐标 > 0 且 x坐标 < hk右边_x坐标 - 80 )hk左边_x坐标 = x坐标 如果真 (高度连续点数量最大值 > 15 且 hk右边_x坐标 = 0 )hk右边_x坐标 = x坐标 如果真 (hk左边_x坐标 > 0 且 hk右边_x坐标 > 0 ) 跳出循环 ()计次循环尾 ()如果真 (hk左边_x坐标 = 0 且 hk左边_x坐标疑似 > 0 )hk左边_x坐标 = hk左边_x坐标疑似 如果真 (hk左边_x坐标 > 0 )计次循环首 (图_高度, j )位图. 置某点颜色 (hk左边_x坐标, j, 取颜色值 (255, 0, 0 )) 计次循环尾 ()如果真 (hk右边_x坐标 > 0 )计次循环首 (图_高度, j )位图. 置某点颜色 (hk右边_x坐标, j, 取颜色值 (255, 0, 0 )) 计次循环尾 () 如果真 (hk右边_x坐标 > 0 )返回 (hk右边_x坐标 - 40 ).如果结束 [/p ][p=30, 2, left]返回 (0 )
通过上面的检测,终点的x坐标确定出来了
2、终点x坐标确定后,接着模拟滑动轨迹,使其通过验证。
|
评分
-
查看全部评分
|