|
前天给论坛网友提供了一个区域找色的写法
搜了一下发现论坛上没有相关源码或者标题关键字
在此将子程序模块化后分享给初学者
源码扩展思路(只是个想法,没写)
①找到目标色值后不跳出循环,将寻找结果加入数组继续寻找,寻找结束返回所有结果
②颜色模糊查找,目标色值设定偏差,嵌套一个茶色数组加入循环查找
③识图方向,模糊识图,取指定图片指定若干坐标点颜色值,依照各坐标点的坐标差作为坐标定位,在区域找色匹配(工作量似乎有点大,而且好像没必要)
源码主体:
程序集 Adm_图色
自定义数据类型 Adm_取色
其余内容为测试和调用示例
调用了精易模块命令 窗口_取坐标处颜色()
|
Adm_区域找色 | Adm_取色 | | |
参_窗口句柄 | 整数型 | | | | 参_起点 | Adm_取色 | | | | 参_终点 | Adm_取色 | | | | 参_目标颜色 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | n | 整数型 | | | 局_临时变量 | 整数型 | | | 局_找色 | Adm_取色 | | | 局_颜色 | 整数型 | | | 如果真 (参_起点.X > 参_终点.X ) 局_临时变量 = 参_起点.X 参_起点.X = 参_终点.X 参_终点.X = 局_临时变量 如果真 (参_起点.Y > 参_终点.Y ) 局_临时变量 = 参_起点.Y 参_起点.Y = 参_终点.Y 参_终点.Y = 局_临时变量 判断 (参_起点.X > 0 且 参_起点.Y > 0 )i = 0 变量循环首 (参_起点.Y, 参_终点.Y, 1, i ) n = 0 变量循环首 (参_起点.X, 参_终点.X, 1, n ) 局_找色.X = 参_起点.X + n 局_找色.Y = 参_起点.Y + i 局_颜色 = 窗口_取坐标处颜色 (参_窗口句柄, 局_找色.X, 局_找色.Y )如果真 (局_颜色 = 参_目标颜色 ) 跳出循环 ()变量循环尾 ()如果真 (局_颜色 = 参_目标颜色 ) 局_找色.结果 = 真 跳出循环 ()如果真 (参_起点.Y + i ≥ 参_终点.Y 且 局_颜色 ≠ 参_目标颜色 ) 局_找色.结果 = 假 局_找色.X = -1 局_找色.Y = -1 变量循环尾 ()返回 (局_找色 )信息框 (“搜索区域超出窗口范围”, 0, “提示”, )返回 (局_找色 )
|
评分
-
查看全部评分
|