行云丶尘伤 发表于 2021-9-25 15:38

auto.js 图色识别

游戏界面是这样子的:

由于这个按钮:每次都在不同位置 需要做下图色识别。


应该咋搞?

if (!requestScreenCapture()) {
    toast("请求截图失败");
    exit();
}

function 找图方法(所找图, 识别率, a, b) {

    let 大图 = captureScreen()
    let 小图1 = images.read("脚本/" + 所找图 + ".jpg");
    let 缩放x = device.width / 1080
    let 缩放y = device.height / 2280
    let 小图 = images.scale(小图1, 缩放x, 缩放y)
    let result = images.matchTemplate(大图, 小图, {
      max: 5,
      region: , //区域
      threshold: 识别率,
    });

    if (result != null) {
      for (let i = 0; i < result.matches.length; i++) {
            let pp = result.matches.point
            // log(pp)
            // console.nk
            console.warn("找到" + 所找图, pp.x, pp.y)

            click(pp.x + a, pp.y + b)
            //log(pp.x, pp.y)
            console.error("点击--" + 所找图)
            sleep(200)
            break;
      }
    } else {
      console.log("===未找到" + 所找图)
    }
}

var 识别率 = 0.75
//识别率在开头定义一次就好
//可以添加控件在ui界面让它自由调整识别率大小

//下面这个就是使用方法
//前面那个找图方法对应上面设置的时候那个名字
//上面设置的时候改了这里也要改
找图方法("xing.jpg", 识别率, 1, 1)

//这个并非一直识别直到成功然后点击的
//所以要用无限循环套起来让他一直识别


用上面这个还是报错。好像路径不对

3/E: TypeError: Cannot read property "mat" from null (file:///android_asset/modules/__images__.js#306)
TypeError: Cannot read property "mat" from null
    at file:///android_asset/modules/__images__.js:306:0
    at 找图方法 (识图.js:12:0)
    at 识图.js:44:0
15:36:42.834/V:

679 发表于 2021-9-25 16:01

它的背景会变,用轮廓识别较好,”牙叔“发过,就是以光遇为举例的,具体的我没有实践过

yyxg 发表于 2021-9-25 17:00

不好意思 看反了

行云丶尘伤 发表于 2021-9-25 17:10

679 发表于 2021-9-25 16:01
它的背景会变,用轮廓识别较好,”牙叔“发过,就是以光遇为举例的,具体的我没有实践过

在哪呢~~~~~

qq20048888 发表于 2021-9-25 19:45

二值化后找

fxwl 发表于 2021-9-25 19:53

第一眼看成了涩图识别。。。。
页: [1]
查看完整版本: auto.js 图色识别