函数:findImageInRegionFuzzy 二值化找图

函数功能:在指定区域中,寻找指定的图案,返回其左上角顶点坐标,支持模糊查找及找多个图。

引擎版本: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,50
for var= 1, 5 do
    snapshot("test_" ..var.. ".png", x1,y1,x2,y2)
    x1 = x1 + 50
    y1 = y1 + 50
    x2 = x2 + 50
    y2 = y2 + 50
end
mSleep(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 -1
if 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 个图片

注意事项

  • 引擎版本 Android v3.1.8 以下版本存在返回坐标位置错误的问题,推荐使用 v3.1.8 及其以上版本。
  • 参数 kind 为 1 需引擎版本 iOS v2.3.6-7 以上支持,kind 为 2 需要引擎版本 iOS v2.3.7 以上支持。
  • 以下找图几种 kind 方式:

    • kind 为 0 - RGB 找图,适用于静态画面,找图速度快,兼容性一般

    • kind 为 1 - 二值化找图,适用于所有画面,找图速度慢,兼容性好

    • kind 为 2 - 二值化找图,适用于静态画面,找图速度快,兼容性好

    • kind 为 3 - 支持找多个图,引擎版本仅支持 iOS v3.1.1、Android v3.1.8 及其以上版本

  • Android 仅支持 png 格式图片。
  • iOS 默认图片路径为 /var/mobile/Media/TouchSprite/res,Android 为/mnt/sdcard/TouchSprite/res(参数中无需填写完整路径),Android 默认图片路径为 /mnt/sdcard/TouchSprite/res/,自建目录请填写绝对路径。
  • 忽略的颜色值指将要寻找的图片的背景颜色,即在屏幕画面上不匹配寻找对象的背景颜色。
  • 若该函数找图不理想可使用 findImage 高级区域找图 或者cvFindImage 图中找图,几种找图方式可配合使用。
  • 为了防止 TSP 脚本中图片泄露,引擎版本 Android v3.1.7 、iOS v3.1.0 及其以上版本已支持对图片进行加密,详见拓展阅读-TSP 脚本图片加密
  • 雷电 9 系统模拟器分辨率为平板版时使用函数:getScreenSize 获取的屏幕宽高相反,获取到的宽度实际为屏幕高度,获取的高度实际为屏幕宽度,其他模拟器获取的屏幕宽高为实际屏幕宽高。
Copyright 北京帮你玩科技有限公司 2023 all right reserved,powered by Gitbook该文章修订时间: 2024-03-06 17:50:18

results matching ""

    No results matching ""