函数功能:在指定区域中,寻找指定的图案,返回其左上角顶点坐标,支持模糊查找及找多个图。
引擎版本:iOS v1.0,Android v2.1.0 以上
函数方法
x, y = findImageInRegionFuzzy(picpath,degree,x1,y1,x2,y2,alpha,kind,value)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
picpath | string | 是 | 将要寻找的图片文件名(Android 仅支持 png 格式), kind 为 3 时可以写多个图片名称,以 , 隔开 |
degree | number | 是 | 寻找精度,范围:1 ~ 100,当是 100 时为完全匹配 |
x1 | number | 是 | 找色区域左上角顶点屏幕横坐标 |
y1 | number | 是 | 找色区域左上角顶点屏幕纵坐标 |
x2 | number | 是 | 找色区域右下角顶点屏幕横坐标 |
y2 | number | 是 | 找色区域右下角顶点屏幕纵坐标 |
alpha | number | 是 | 忽略的颜色值(透明色),若无请填 0 |
kind | number | 否 | 找图类型,更多请看注意事项,不写默认为 0 |
value | number | 否 | 二值化阈值,作为图像二值化的参照值, 引擎版本仅支持 Andorid v3.1.7.1、iOS v3.1.1 及其以上版本, 范围为 0 - 255, 只有 kind 为 1 或者 2 的时候才生效, 不写阈值,或阈值小于0,或大于等于255, 则默认使用自动计算的阈值进行二值化 |
返回值 | 类型 | 说明 |
---|---|---|
x,y | number | 找到的图片的左上角顶点坐标,如未找到则返回 -1,-1 |
n | number | 找到图片的位置, 引擎版本仅支持 iOS v3.1.1、Android v3.1.8 及其以上版本, 以 0 开始表示找到第一个图片, 以此类推为 n 时表示找到第 n+1 个图片 |
脚本实例
精确寻找指定区域中,指定图片的位置
--寻找符合条件的图片(假设图片的背景颜色为白色)x, y = findImageInRegionFuzzy("test_alpha.png",90,0,0,320,480,0,1);if x ~= -1 and y ~= -1 then --如果在指定区域找到某图片符合条件 touchDown(x, y); --那么单击该图片 mSleep(30) touchUp(x, y);else --如果找不到符合条件的图片 dialog("未找到符合条件的坐标!",0);end
--找多个图width, height = getScreenSize();x1,y1,x2,y2 = 0,0,50,50for var= 1, 5 do snapshot("test_" ..var.. ".png", x1,y1,x2,y2) x1 = x1 + 50 y1 = y1 + 50 x2 = x2 + 50 y2 = y2 + 50endmSleep(2000)x, y, n = findImageInRegionFuzzy("test_1.png,test_2.png,test_3.png,test_4.png,test_5.png", 90, 0, 0, width, height, 0, 3);n = n or -1if x ~= -1 and y ~= -1 then --如果在指定区域找到某图片符合条件 dialog("x : " .. x .. " y : " .. y .. " n = " .. n)else --如果找不到符合条件的图片 dialog("未找到符合条件的坐标!",0);end--返回值为 x : 0 y : 0 n = 0,x : 0 y : 0 为找到图片左上角的坐标,n = 0 表示找到第 1 个图片
注意事项
以下找图几种 kind 方式:
kind 为 0 - RGB 找图,适用于静态画面,找图速度快,兼容性一般
kind 为 1 - 二值化找图,适用于所有画面,找图速度慢,兼容性好
kind 为 2 - 二值化找图,适用于静态画面,找图速度快,兼容性好
kind 为 3 - 支持找多个图,引擎版本仅支持 iOS v3.1.1、Android v3.1.8 及其以上版本
findImage 高级区域找图
或者cvFindImage 图中找图
,几种找图方式可配合使用。