画像内で色を検索 (:find_color)
宣言
X 座標, Y 座標 = 画像:find_color({
[find_all = 複数の結果を検索するか,]
[max_results = 最大結果数,]
[max_miss = 許容する未一致点の最大数,]
[find_order = 色検索順序,]
[csim_algorithm = 色類似度アルゴリズム,]
{基準点の X 座標, 基準点の Y 座標, 基準点の色[, 基準点の類似度]},
{オフセット点X座標*, オフセット点Y座標*, オフセット点の色*[, オフセット点の類似度*]},
{オフセット点X座標*, オフセット点Y座標*, オフセット点の色*[, オフセット点の類似度*]},
...
} [, 全体の類似度, 左端, 上端, 右端, 下端 ])
パラメータ
-
複数の結果を検索するか
省略可能なブール型。このフィールドを 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 はユークリッドアルゴリズム。勾配が滑らか -
基準点の X 座標, 基準点の Y 座標
整数型。基準座標を指定する。この座標だけに色の検索範囲を限定するものではなく、オフセット位置の基準となる相対座標。オフセットを使用しない場合は 0, 0 を指定できる -
基準点の色
整数型。検索する基準点の色 -
基準点の類似度
省略可能な整数型。検索する基準点の色の類似度。範囲は 1~100、デフォルトは 100 -
オフセット点の X 座標*, オフセット点の Y 座標*
整数型。オフセット位置の座標 -
オフセット点の色*
整数型。オフセット位置で一致させる色 -
オフセット点の類似度*
省略可能な整数型。オフセット位置の色の類似度。範囲は -100~100、デフォルトは 100。負の類似度は、その絶対値未満の類似度に一致することを意味する -
全体の類似度
省略可能な整数型。個別の点に類似度が設定されていない場合、各点にこの類似度を使用する。範囲は 1~100、デフォルトは 100 -
左端、上端、右端、下端
省略可能な整数型。検索領域。デフォルトは画像全体
戻り値
- X 座標, Y 座標
整数型。一致した色構造の最初の点の座標を返す。検索に失敗した場合は -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 を超える類似度で一致し、
以降も同様にすべての条件に一致する点を検索する
--]]