|

本帖最后由 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坐标确定后,接着模拟滑动轨迹,使其通过验证。
|
评分
-
查看全部评分
|