Login
首页 > 教程资料 > 函数详解

函数:findImageInRegionFuzzy 二值化找图

小编 2023-12-13 13:27:17 人看过

函数:findImageInRegionFuzzy 二值化找图

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

引擎版本:iOS v1.0,Android v2.1.0 以上

函数方法

x, y = findImageInRegionFuzzy(picpath,degree,x1,y1,x2,y2,alpha,kind,value)

参数类型必填说明
picpathstring将要寻找的图片文件名(Android 仅支持 png 格式),
kind 为 3 时可以写多个图片名称,以 , 隔开
degreenumber寻找精度,范围:1 ~ 100,当是 100 时为完全匹配
x1number找色区域左上角顶点屏幕横坐标
y1number找色区域左上角顶点屏幕纵坐标
x2number找色区域右下角顶点屏幕横坐标
y2number找色区域右下角顶点屏幕纵坐标
alphanumber忽略的颜色值(透明色),若无请填 0
kindnumber找图类型,更多请看注意事项,不写默认为 0
valuenumber二值化阈值,作为图像二值化的参照值,
引擎版本仅支持 Andorid v3.1.7.1、iOS v3.1.1 及其以上版本,
范围为 0 - 255,
只有 kind 为 1 或者 2 的时候才生效,
不写阈值,或阈值小于0,或大于等于255,
则默认使用自动计算的阈值进行二值化
返回值类型说明
x,ynumber找到的图片的左上角顶点坐标,如未找到则返回 -1,-1
nnumber找到图片的位置,
引擎版本仅支持 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 个图片

注意事项

  • 引擎版本 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 获取的屏幕宽高相反,获取到的宽度实际为屏幕高度,获取的高度实际为屏幕宽度,其他模拟器获取的屏幕宽高为实际屏幕宽高。


版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章