螢幕多點顏色匹配 (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
說明
匹配螢幕上若干點的顏色
目前函式座標值參數受screen.init函式初始化的座標系影響
範例
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