找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 75|回复: 0

找图找色总翻车?聊聊模板匹配阈值与多分辨率适配

[复制链接]

3

主题

0

回帖

11

积分

软件网站新手

积分
11
发表于 3 小时前 | 显示全部楼层 |阅读模式
脚本在自家手机上跑得好好的,换一台机器就满屏找不到图——这是找图找色新手最高频的坑。根因基本就两类:匹配阈值太死,或者坐标写死了某一台机器的分辨率。


阈值不是越高越好

`findColor` 这类接口一般要传一个相似度阈值。很多人图省事写 0.95,结果目标颜色稍微受光照、抗锯齿影响就匹配不上。实战里 0.85~0.90 是更稳的区间:既能容错,又不会乱匹配到背景。

  1. var p = findColor("#ff5500", 0.88, 0, 0, sw, sh);
  2. if (p) { clickPercent(p.x / sw, p.y / sh); }
复制代码

注意这里用 `clickPercent` 而不是 `click(p.x, p.y)`——把绝对坐标换成百分比,天然适配不同分辨率。


死坐标是大忌

把"点击 (540, 960)"写死,等于只认这一台 1080p 手机。换成百分比坐标后,720p、2K 屏都能点到同一个按钮。AIWROK 的 `clickPercent(x, y)` 和 `rectInPercent(...)` 就是为此设计的。


多点校验更稳

只找一个颜色容易误判。更稳的做法是找一个"特征组合":比如同时校验图标颜色和它右侧文字区域,或者连续找 3 个锚点都在预期位置才认定匹配成功。误匹配率能降一个数量级。


找不到要优雅降级

匹配失败别让脚本卡死重试。设定最大重试次数,超过就走备选路径(比如改用 `auto.getXml()` 找控件文字),再不行就 `toast.show` 提示并暂停,留给人处理。

  1. var tries = 0;
  2. while (tries < 3) {
  3.     var p = findColor(target, 0.88, 0, 0, sw, sh);
  4.     if (p) { clickPercent(p.x / sw, p.y / sh); break; }
  5.     tries++; sleep.millisecond(500);
  6. }
复制代码


截图区域越小越快

`findColor` 的搜索范围是全屏就慢。把范围缩到"只可能在的那个区域",速度能快好几倍,也更不容易误匹配到别处的同色块。


相关阅读


  • 短信验证码中心AIWROK万能调用端
  • clickPercent天然适配不同分辨率找控件点击
  • floatUI深色控制台风格悬浮窗日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|

GMT+8, 2026-10-22 22:40

安卓脚本软件 · 键鼠盒子 · HID · 机械臂

快速回复 返回顶部 返回列表

随机推荐 · 热帖 / 新帖 / 随便看看

社区会员(随机展示)