Saltar al contenido principal

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. Cuando find_all está 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, derecha

    La función de búsqueda de color de pantalla screen.find_color no 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
--]]