|

100精币
请给完整解释,如果觉得精币不够,我另外开帖让你答!!!
源码在下面{:2_143:} 本人搞不懂啊
-
- 版本 2
- .支持库 BmpOperate
- .子程序 _按钮1_被单击
- .局部变量 坐标, 坐标
- .局部变量 启动时间, 整数型
- .局部变量 误差值, 整数型
- .局部变量 吻合值, 整数型
- 启动时间 = 取启动时间 ()
- 误差值 = 到数值 (编辑框1.内容)
- 吻合值 = 到数值 (编辑框2.内容)
- .如果 (选择框2.选中 = 假)
- .如果 (位图模糊找图 (图片框1.图片, 图片框2.图片, 误差值, 吻合值, 坐标) = 1)
- .如果真 (选择框1.选中)
- 图片框2.左边 = 坐标.x + 图片框1.左边
- 图片框2.顶边 = 坐标.y + 图片框1.顶边
- 图片框2.调整层次 ()
- .如果真结束
- 标签1.标题 = “用时:” + 到文本 (取启动时间 () - 启动时间)
- 标签2.标题 = “坐标:” + 到文本 (坐标.x) + “:” + 到文本 (坐标.y)
- .否则
- 信息框 (“没找到”, 0, )
- .如果结束
- 返回 ()
- .否则
- .如果 (位图模糊找图 (图片框1.图片, 图片框3.图片, 误差值, 吻合值, 坐标) = 1)
- .如果真 (选择框1.选中)
- 图片框3.左边 = 坐标.x + 图片框1.左边
- 图片框3.顶边 = 坐标.y + 图片框1.顶边
- 图片框3.调整层次 ()
- .如果真结束
- 标签1.标题 = “用时:” + 到文本 (取启动时间 () - 启动时间)
- 标签2.标题 = “坐标:” + 到文本 (坐标.x) + “:” + 到文本 (坐标.y)
- .否则
- 信息框 (“没找到”, 0, )
- .如果结束
- 返回 ()
- .如果结束
- .子程序 位图模糊找图, 整数型, , 返回1成功,0失败
- .参数 原图象数据, 字节集
- .参数 目标图片数据, 字节集
- .参数 误差值, 整数型
- .参数 吻合值, 整数型
- .参数 坐标, 坐标, 参考 可空, 返还目标图片左上角所在坐标
- .局部变量 原图象, 位图
- .局部变量 目标图片, 位图
- .局部变量 i, 整数型
- .局部变量 i2, 整数型
- .局部变量 i3, 整数型
- .局部变量 i4, 整数型
- .局部变量 基色, 整数型
- .局部变量 基点色, 整数型
- .局部变量 已吻合值, 整数型
- .局部变量 已不吻合值, 整数型
- .局部变量 不吻合值, 整数型
- .局部变量 总长, 整数型
- .局部变量 临时颜色值, 整数型
- .局部变量 位置, 坐标
- .局部变量 基点, 坐标
- 原图象.载入数据 (原图象数据)
- 目标图片.载入数据 (目标图片数据)
- 总长 = 目标图片.取宽度 () × 目标图片.取高度 ()
- 吻合值 = 总长 × 吻合值 \ 100
- .如果 (吻合值 = 总长)
- 不吻合值 = 1
- .否则
- 不吻合值 = 总长 - 吻合值 + 1
- .如果结束
- 误差值 = 取绝对值 (误差值 × 16777215 \ 100000)
- 置随机数种子 ()
- 基点.x = 取随机数 (0, 目标图片.取宽度 () - 1)
- 基点.y = 取随机数 (0, 目标图片.取高度 () - 1)
- 基色 = 目标图片.取某点颜色 (基点.x, 基点.y)
- .计次循环首 (原图象.取宽度 (), i)
- .计次循环首 (原图象.取高度 (), i2)
- 基点色 = 原图象.取某点颜色 (i - 1, i2 - 1) ' 取大图片中某点色
- .如果真 (取绝对值 (基点色 - 基色) ≤ 误差值) ' 取起点颜色值
- 已吻合值 = 0
- 已不吻合值 = 0
- .计次循环首 (目标图片.取宽度 (), i3) ' 循环判断颜色值
- .计次循环首 (目标图片.取高度 (), i4)
- 位置.x = i + i3 - 2 - 基点.x
- .如果真 (位置.x > 原图象.取宽度 () - 1 或 位置.x < 0)
- 跳出循环 ()
- .如果真结束
- 位置.y = i2 + i4 - 2 - 基点.y
- .如果真 (原图象.取高度 () - 1 < 位置.y 或 位置.y < 0)
- 跳出循环 ()
- .如果真结束
- 临时颜色值 = 取绝对值 (原图象.取某点颜色 (位置.x, 位置.y) - 目标图片.取某点颜色 (i3 - 1, i4 - 1))
- .如果 (临时颜色值 ≤ 误差值)
- 已吻合值 = 已吻合值 + 1
- .否则
- 已不吻合值 = 已不吻合值 + 1
- .如果结束
- .如果真 (已吻合值 ≥ 吻合值)
- ' 输出调试文本 (“找到了”)
- 坐标.x = i - 1 - 基点.x
- 坐标.y = i2 - 1 - 基点.y
- 返回 (1)
- .如果真结束
- .如果真 (已不吻合值 ≥ 不吻合值)
- 跳出循环 ()
- .如果真结束
- 处理事件 ()
- .计次循环尾 ()
- .如果真 (已不吻合值 ≥ 不吻合值)
- 跳出循环 ()
- .如果真结束
- .计次循环尾 ()
- .如果真结束
- 处理事件 ()
- .计次循环尾 ()
- .计次循环尾 ()
- ' 输出调试文本 (“没找到”)
- 返回 (0)
复制代码 |
最佳答案
查看完整内容
随即取点并判断是否颜色相同,计次循环重复取点,是否满足误差率!
|