Rechercher une couleur dans une image (:find_color)
Déclaration
x, y = image:find_color({
[find_all = find_all,]
[max_results = max_results,]
[max_miss = max_miss,]
[find_order = find_order,]
[csim_algorithm = color_similarity_algorithm,]
{start_x, start_y, start_color[, start_similarity]},
{dx*, dy*, color*[, similarity*]},
{dx*, dy*, color*[, similarity*]},
...
} [, global_similarity, left, top, right, bottom ])
Paramètres
-
find_all Booléen facultatif : si
true, retourne toutes les positions correspondantes dans la zone sous la forme{{x1, y1}, {x2, y2}, ...}. Par défautfalse -
max_results Entier facultatif : lorsque
find_allvauttrue, nombre maximal de résultats, au plus 1000, par défaut 100 -
max_miss Entier facultatif : nombre maximal de points ne correspondant pas, par défaut 0, donc tous les points doivent correspondre
-
find_order Entier facultatif : ordre de recherche, de 1 à 8, par défaut 1
Valeurs de l’ordre de recherche
1 haut-bas-gauche-droite
2 gauche-droite-haut-bas
3 droite-gauche-haut-bas
4 haut-bas-droite-gauche
5 bas-haut-droite-gauche
6 droite-gauche-bas-haut
7 gauche-droite-bas-haut
8 bas-haut-gauche-droiteLa fonction d’écran
screen.find_colorne possède pas ce champ. Démonstration de l’ordre de recherche -
color_similarity_algorithm (à partir de 20250302) Entier facultatif : algorithme de similarité des couleurs, par défaut 0
Algorithmes de similarité des couleurs
0 algorithme par défaut de XXT, gradient abrupt, la similarité diminue rapidement avec la différence
1 algorithme de Manhattan, gradient régulier
2 algorithme euclidien, gradient régulier -
start_x, start_y Entiers : coordonnées de départ servant de référence aux décalages, et non de limite fixe de recherche ; utilisez 0, 0 si aucun décalage n’est nécessaire
-
start_color Entier : couleur du point de départ à rechercher
-
start_similarity Entier facultatif : similarité de la couleur du point de départ, de 1 à 100, par défaut 100
-
dx*, dy* Entiers : coordonnées d’un décalage
-
color* Entier : couleur attendue au point décalé
-
similarity* Entier facultatif : similarité au point décalé, de -100 à 100, par défaut 100 ; une similarité négative signifie qu’il faut correspondre à une similarité inférieure à sa valeur absolue
-
global_similarity Entier facultatif : similarité utilisée lorsqu’aucune similarité individuelle n’est définie, de 1 à 100, par défaut 100
-
left, top, right, bottom Entiers facultatifs : zone de recherche, par défaut l’image entière
Valeur de retour
- x, y Entiers : coordonnées du premier point correspondant ; retourne -1, -1 en cas d’échec
Description
Utilise le mode de similarité pour rechercher la première position correspondant à une structure de couleurs multipoints dans la zone Pour le mode de décalage, consultez screen.find_color
Exemple
image = screen.image()
x, y = image: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)
--
--[[
Dans la zone allant de 0, 0 en haut à gauche de l’image à 100, 100 en bas à droite,
rechercher le premier point dont la similarité avec 0xec1c23 dépasse 90,
dont les coordonnées relatives (12, -3) ont une couleur dont la similarité avec 0xffffff dépasse 85,
dont les coordonnées relatives (5, -18) ont une couleur dont la similarité avec 0x00adee dépasse 90,
et dont tous les autres points correspondent de la même manière.
--]]
--
-- Code équivalent :
--
x, y = image: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)
--
--[[
Dans la zone allant de 0, 0 en haut à gauche de l’image à 100, 100 en bas à droite,
rechercher le premier point dont la similarité avec 0xec1c23 dépasse 90,
dont les coordonnées relatives (521-509, 485-488) ont une couleur dont la similarité avec 0xffffff dépasse 85,
dont les coordonnées relatives (514-509, 470-488) ont une couleur dont la similarité avec 0x00adee dépasse 90,
et dont tous les autres points correspondent de la même manière.
--]]