メインコンテンツまでスキップ

画面上の複数点の色を照合 (screen.is_colors)

宣言

一致するか = screen.is_colors({
[max_miss = 許容する未一致点の最大数,]
[xy_tolerance = 座標許容差,]
[csim_algorithm = 色類似度アルゴリズム,]
{X座標*, Y座標*,*},
{X座標*, Y座標*,*},
...
}[, 色の類似度])

パラメータ

  • 許容する未一致点の最大数
    整数。省略可能です。許容する不一致点の最大数を指定します。デフォルトは 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 を使用しています