Skip to content

查找图像(多模板)

使用 OpenCV 模板匹配技术,在设备截图中同时查找多张模板图片。相比 findImage,该接口使用 sprites 数组输入,并在返回结果中提供命中的模板 index(对应 sprites 的下标),便于区分命中了哪一张模板。

接口说明

接口类型

findImages

参数

参数名类型必填说明
deviceIdstring设备ID
spritesarray模板图片数组(base64字符串数组)
thresholdnumber相似度阈值 (0-1),默认 0.9
rectarray搜索区域 [x1, y1, x2, y2],默认全屏
directionnumber搜索方向 0-3,默认 0
findAllboolean是否返回全部匹配,默认 false, 找到一张就返回
distancenumber结果间最小距离(像素),默认 8

返回值

最优匹配(findAll = false):

  • 未匹配到返回 null
  • 匹配到返回对象:
javascript
{
    x: 100,           // 匹配区域中心点X坐标
    y: 200,           // 匹配区域中心点Y坐标
    confidence: 0.95, // 相似度 (0-1)
    index: 0          // 命中模板在 sprites 中的下标
}

全部匹配(findAll = true):

  • 未匹配到返回空数组 []
  • 匹配到返回数组:
javascript
[
    { x: 100, y: 200, confidence: 0.95, index: 0 },
    { x: 150, y: 250, confidence: 0.92, index: 2 },
    { x: 200, y: 300, confidence: 0.90, index: 1 }
]
// 按相似度降序排列,最多返回 88 个结果

功能说明

查找策略(findAll = false)

  • direction = 0(默认):在所有 sprites 的匹配结果中选择全局最优(相似度最高)的那个点返回。
  • direction != 0:按 sprites 的顺序依次尝试,找到任意一个模板命中后立即返回(并遵循方向偏好)。

搜索方向

direction说明适用场景
0最优匹配查找相似度最高的位置(默认)
1从右到左优先查找屏幕右侧的目标
2从下到上优先查找屏幕下方的目标
3从右下到左上优先查找屏幕右下角的目标

相似度阈值

threshold 控制匹配精度:

  • 1.0 - 完全相同(很难匹配成功)
  • 0.95 - 几乎完全相同
  • 0.9 - 高度相似(推荐,默认值)
  • 0.85 - 相似
  • 0.8 - 基本相似
  • < 0.8 - 可能误匹配

去重策略(distance)

findAll = true 时,如果两个结果点在 X 与 Y 方向上都小于 distance 像素,会被视为“太近”,从而过滤掉低相似度的结果,减少重复命中。

💡 提示

建议模板图片尽量小且特征明显(避免大面积纯色或重复纹理)。在已知目标出现区域时优先使用 rect 限定搜索范围,可显著提升速度与准确率。

商务合作:try.catch@foxmail.com