圖中找色 (:find_color)
聲明
橫座標, 縱座標 = 圖片:find_color({
[find_all = 是否搜尋多個結果,]
[max_results = 最大結果數,]
[max_miss = 允許最多未命中數,]
[find_order = 找色順序,]
[csim_algorithm = 顏色相似度演算法,]
{起始點橫座標, 起始點縱座標, 起始點顏色[, 起始點相似度]},
{偏移點橫座標*, 偏移點縱座標*, 偏移點顏色*[, 偏移點相似度*]},
{偏移點橫座標*, 偏移點縱座標*, 偏移點顏色*[, 偏移點相似度*]},
...
} [, 全域相似度, 左, 上, 右, 下 ])
參數
-
是否搜尋多個結果
布林型,可選參數,這個標籤設定為 true 會返回範圍內所有匹配位置的一個表,格式為 {{x1, y1}, {x2, y2}, ...},預設 false -
最大結果數
整數型,可選參數,當 find_all (是否搜尋多個結果) 標籤設定為 true 的時候,這個表示最多返回結果數,最多可以設為 1000,預設 100 -
允許最多未命中數
整數型,可選參數,可以允許最多的不匹配的點的數量,預設為 0,也就是全命中才算找到 -
找色順序
整數型,可選參數,代表找色順序,取值範圍 1~8,預設 1找色順序取值說明
1 由上至下、由左至右
2 由左至右、由上至下
3 由右至左、由上至下
4 由上至下、由右至左
5 由下至上、由右至左
6 由右至左、由下至上
7 由左至右、由下至上
8 由下至上、由左至右螢幕找色函式 screen.find_color 沒有這個字段
找色順序演示 -
顏色相似度演算法(自 20250302 版本起支援)
整數型,可選參數,顏色相似度演算法,預設 0顏色相似度演算法
0 為 XXT 預設演算法,梯度陡峭,差值使相似度下降很快
1 為曼哈頓演算法,梯度平滑
2 為歐幾里得演算法,梯度平滑 -
起始點橫座標, 起始點縱座標
整數型,代表起始座標,它並不是限制找色的範圍為固定這一點,而僅僅是給偏移位置一個相對座標。若不需要使用偏移,可填 0, 0 -
起始點顏色
整數型,代表需要搜尋的那一點的顏色 -
起始點相似度
整數型,可選參數,需要搜尋的那一點顏色的相似度,取值範圍 1~100,預設 100 -
偏移點橫座標*, 偏移點縱座標*
整數型,代表一個偏移位置座標 -
偏移點顏色*
整數型,代表偏移位置需要匹配的顏色 -
偏移點相似度*
整數型,可選參數,偏移位置的顏色的相似度,取值範圍 -100~100,預設 100,負相似度意味著匹配小於該絕對值的相似度 -
全域相似度
整數型,可選參數,如果沒有給單個點設定相似度,那麼每一點都會用這個相似度,取值範圍 1~100,預設 100 -
左, 上, 右, 下
整數型,可選參數,代表搜尋區域,預設 全圖
回傳值
- 橫座標, 縱座標
整數型,返回匹配色的第一個色的座標,搜尋失敗返回 -1, -1
說明
使用相似度模式查找,取得區域中第一個完全匹配的多點顏色結構的位置
偏色模式用法參考 多點色偏模式找色 (screen.find_color)
範例
img = screen.image()
x, y = img:find_color({
{ 0, 0, 0xec1c23},
{ 12, -3, 0xffffff, 85},
{ 5, -18, 0x00adee},
{ -1, -10, 0xffc823},
{ 2, -34, 0xa78217},
{ 12, -55, 0xd0d2d2},
}, 90, 0, 0, 100, 100)
--
--[[
在圖片左上為 0, 0 右下為 100, 100 的區域找到第一點與 0xec1c23 相似度大於 90
且它的相對坐標 (12, -3) 的位置的顏色與 0xffffff 相似度大於 85
且它的相對坐標 (5, -18) 的位置的顏色與 0x00adee 相似度大於 90
且…… (後面的同理) 都能匹配的那個點
--]]
--
-- 等效代碼如下:
--
x, y = img:find_color({
{ 509, 488, 0xec1c23},
{ 521, 485, 0xffffff, 85},
{ 514, 470, 0x00adee},
{ 508, 478, 0xffc823},
{ 511, 454, 0xa78217},
{ 521, 433, 0xd0d2d2},
}, 90, 0, 0, 100, 100)
--
--[[
在圖片左上為 0, 0 右下為 100, 100 的區域找到第一點與 0xec1c23 相似度大於 90
且它的相對坐標 (521-509, 485-488) 的位置的顏色與 0xffffff 相似度大於 85
且它的相對坐標 (514-509, 470-488) 的位置的顏色與 0x00adee 相似度大於 90
且…… (後面的同理) 都能匹配的那個點
--]]