跳到主要内容

屏幕多点颜色匹配 (screen.is_colors)

声明

是否匹配 = screen.is_colors({
[max_miss = 允许最大未命中数,]
[xy_tolerance = 坐标容差,]
[csim_algorithm = 颜色相似度算法,]
{横坐标*, 纵坐标*, 颜色*},
{横坐标*, 纵坐标*, 颜色*},
...
}[, 颜色相似度])

参数

  • 允许最大未命中数
    整数型,可选参数,可以允许最多的不匹配的点的数量,默认为 0,也就是全命中才算匹配

  • 坐标容差 20250228
    整数型,可选参数,可以允许的坐标偏移量,超过这个值的点将被视为未命中,默认为 0,表示坐标必须完全匹配

  • 颜色相似度算法 20250302
    整数型,可选参数,颜色相似度算法,默认 0

    颜色相似度算法
    0 为 XXT 默认算法,梯度陡峭,差值使相似度下降很快
    1 为曼哈顿算法,梯度平滑
    2 为欧几里得算法,梯度平滑
  • 横坐标*, 纵坐标*
    整数型,代表其中某点坐标

  • 颜色*
    整数型,代表其中某点需要匹配的颜色值

  • 颜色相似度
    整数型,可选参数,代表需要的颜色的相似度,取值范围 1~100,默认 100

返回值

  • 是否匹配
    布尔型,所有点的颜色都匹配则返回 true,否则返回 false

说明

匹配屏幕上若干点的颜色

示例

if screen.is_colors({
{ 509, 488, 0xec1c23}, -- 如果坐标 (509, 488) 的颜色与 0xec1c23 相似度在 90% 以上
{ 514, 470, 0x00adee}, -- 同时坐标 (514, 470) 的颜色与 0x00adee 相似度在 90% 以上
{ 508, 478, 0xffc823}, -- 同时坐标 (508, 478) 的颜色与 0xffc823 相似度在 90% 以上
{ 511, 454, 0xa78217}, -- 同时坐标 (511, 454) 的颜色与 0xa78217 相似度在 90% 以上
{ 521, 433, 0xd0d2d2}, -- 同时坐标 (521, 433) 的颜色与 0xd0d2d2 相似度在 90% 以上
}, 90) then -- 则匹配
sys.alert("匹配!")
else
sys.alert("不匹配!")
end

:上述代码中使用了非本章函数 sys.alert