Buscar un color en una imagen (:find_color)
Declaración
coordenada_x, coordenada_y = imagen:find_color({
[find_all = buscar_múltiples_resultados,]
[max_results = máximo_de_resultados,]
[max_miss = máximo_de_fallos_permitidos,]
[find_order = orden_de_búsqueda_de_color,]
[csim_algorithm = algoritmo_de_similitud_de_color,]
{coordenada_x_inicial, coordenada_y_inicial, color_inicial[, similitud_inicial]},
{coordenada_x_desplazamiento*, coordenada_y_desplazamiento*, color_desplazamiento*[, similitud_desplazamiento*]},
{coordenada_x_desplazamiento*, coordenada_y_desplazamiento*, color_desplazamiento*[, similitud_desplazamiento*]},
...
} [, similitud_global, izquierda, arriba, derecha, abajo ])
Parámetros
-
buscar_múltiples_resultados
Booleano opcional. Si esta etiqueta se establece en true, devuelve una tabla con todas las posiciones coincidentes del área, con el formato{{x1, y1}, {x2, y2}, ...}; predeterminado false. -
máximo_de_resultados
Entero opcional. Cuandofind_allestá establecido en true, indica el número máximo de resultados devueltos; como máximo 1000, predeterminado 100. -
máximo_de_fallos_permitidos
Entero opcional. Número máximo de puntos no coincidentes que se permite; predeterminado 0, es decir, solo se considera encontrado si todos coinciden. -
orden_de_búsqueda_de_color
Entero opcional que indica el orden de búsqueda; intervalo 1~8, predeterminado 1.Valores del orden de búsqueda de color
1: arriba, abajo, izquierda, derecha
2: izquierda, derecha, arriba, abajo
3: derecha, izquierda, arriba, abajo
4: arriba, abajo, derecha, izquierda
5: abajo, arriba, derecha, izquierda
6: derecha, izquierda, abajo, arriba
7: izquierda, derecha, abajo, arriba
8: abajo, arriba, izquierda, derechaLa función de búsqueda de color de pantalla
screen.find_colorno tiene este campo.
Ejemplo del orden de búsqueda de color -
algoritmo_de_similitud_de_color (compatible desde la versión 20250302)
Entero opcional: algoritmo de similitud de color; predeterminado 0.Algoritmos de similitud de color
0: algoritmo predeterminado de XXT, gradiente pronunciado; la diferencia reduce rápidamente la similitud
1: algoritmo de Manhattan, gradiente suave
2: algoritmo euclídeo, gradiente suave -
coordenada_x_inicial, coordenada_y_inicial
Enteros que representan las coordenadas iniciales. No limitan el área de búsqueda a ese punto; solo proporcionan una coordenada relativa para las posiciones de desplazamiento. Si no necesitas desplazamiento, usa 0, 0. -
color_inicial
Entero que representa el color del punto que se buscará. -
similitud_inicial
Entero opcional: similitud del color del punto que se buscará; intervalo 1~100, predeterminado 100. -
coordenada_x_desplazamiento*, coordenada_y_desplazamiento*
Enteros que representan las coordenadas de una posición de desplazamiento. -
color_desplazamiento*
Entero que representa el color que debe coincidir en la posición de desplazamiento. -
similitud_desplazamiento*
Entero opcional: similitud del color en la posición de desplazamiento; intervalo -100~100, predeterminado 100. Una similitud negativa significa que debe coincidir una similitud inferior a su valor absoluto. -
similitud_global
Entero opcional. Si no se establece la similitud de un punto individual, todos los puntos usan esta similitud; intervalo 1~100, predeterminado 100. -
izquierda, arriba, derecha, abajo
Enteros opcionales que representan el área de búsqueda; predeterminado: toda la imagen.
Valor de retorno
- coordenada_x, coordenada_y
Enteros: coordenadas del primer color coincidente; si la búsqueda falla, devuelve -1, -1.
Descripción
Busca en modo de similitud y obtiene la posición de la primera estructura de varios puntos de color que coincida por completo en el área. Para usar el modo de desviación de color, consulta búsqueda de color de varios puntos con desviación (screen.find_color).
Ejemplo
imagen = screen.image()
x, y = imagen: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)
--
--[[
En el área de 0, 0 arriba a la izquierda a 100, 100 abajo a la derecha, encontrar el primer punto cuya similitud con 0xec1c23 sea superior a 90
y cuyo punto relativo (12, -3) tenga un color con similitud superior a 85 respecto a 0xffffff
y cuyo punto relativo (5, -18) tenga un color con similitud superior a 90 respecto a 0x00adee
y así sucesivamente, todos coincidentes
--]]
--
-- Código equivalente:
--
x, y = imagen: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)
--
--[[
En el área de 0, 0 arriba a la izquierda a 100, 100 abajo a la derecha, encontrar el primer punto cuya similitud con 0xec1c23 sea superior a 90
y cuyo punto relativo (521-509, 485-488) tenga un color con similitud superior a 85 respecto a 0xffffff
y cuyo punto relativo (514-509, 470-488) tenga un color con similitud superior a 90 respecto a 0x00adee
y así sucesivamente, todos coincidentes
--]]