Pular para o conteúdo principal

Encontrar uma cor na imagem (:find_color)

Declaração

coordenada_x, coordenada_y = imagem:find_color({
[find_all = pesquisar_multiplos_resultados,]
[max_results = numero_maximo_de_resultados,]
[max_miss = numero_maximo_de_erros,]
[find_order = ordem_de_busca_de_cores,]
[csim_algorithm = algoritmo_de_similaridade_de_cores,]
{coordenada_x_inicial, coordenada_y_inicial, cor_inicial[, similaridade_inicial]},
{coordenada_x_do_deslocamento*, coordenada_y_do_deslocamento*, cor_do_deslocamento*[, similaridade_do_deslocamento*]},
{coordenada_x_do_deslocamento*, coordenada_y_do_deslocamento*, cor_do_deslocamento*[, similaridade_do_deslocamento*]},
...
} [, similaridade_global, esquerda, topo, direita, baixo ])

Parâmetros

  • pesquisar_multiplos_resultados
    Booleano opcional; quando definido como true, retorna uma tabela com todas as posições correspondentes na área, no formato {{x1, y1}, {x2, y2}, ...}. O padrão é false

  • numero_maximo_de_resultados
    Inteiro opcional; quando a etiqueta find_all (pesquisar múltiplos resultados) é true, indica o número máximo de resultados retornados. Pode ser definido no máximo como 1000; o padrão é 100

  • numero_maximo_de_erros
    Inteiro opcional; número máximo de pontos sem correspondência permitido. O padrão é 0, ou seja, todos os pontos devem corresponder

  • ordem_de_busca_de_cores
    Inteiro opcional que representa a ordem de busca de cores, de 1 a 8. O padrão é 1

    Valores da ordem de busca de cores
    1 cima-baixo-esquerda-direita
    2 esquerda-direita-cima-baixo
    3 direita-esquerda-cima-baixo
    4 cima-baixo-direita-esquerda
    5 baixo-cima-direita-esquerda
    6 direita-esquerda-baixo-cima
    7 esquerda-direita-baixo-cima
    8 baixo-cima-esquerda-direita

    A função de busca de cores na tela screen.find_color não possui este campo
    Demonstração da ordem de busca de cores

  • algoritmo_de_similaridade_de_cores (compatível a partir da versão 20250302)
    Inteiro opcional; algoritmo de similaridade de cores. O padrão é 0

    Algoritmo de similaridade de cores
    0 é o algoritmo padrão do XXT; o gradiente é acentuado e a similaridade diminui rapidamente com a diferença
    1 é o algoritmo de Manhattan; o gradiente é suave
    2 é o algoritmo euclidiano; o gradiente é suave
  • coordenada_x_inicial, coordenada_y_inicial
    Inteiros que representam a coordenada inicial. Isso não limita a busca de cores a um ponto fixo; apenas fornece uma coordenada relativa para a posição de deslocamento. Se o deslocamento não for necessário, informe 0, 0

  • cor_inicial
    Inteiro que representa a cor do ponto a pesquisar

  • similaridade_inicial
    Inteiro opcional; similaridade da cor do ponto a pesquisar, de 1 a 100. O padrão é 100

  • coordenada_x_do_deslocamento*, coordenada_y_do_deslocamento*
    Inteiros que representam uma coordenada de deslocamento

  • cor_do_deslocamento*
    Inteiro que representa a cor a corresponder na posição de deslocamento

  • similaridade_do_deslocamento*
    Inteiro opcional; similaridade da cor na posição de deslocamento, de -100 a 100. O padrão é 100. Uma similaridade negativa significa corresponder a uma similaridade menor que seu valor absoluto

  • similaridade_global
    Inteiro opcional; se uma similaridade não for definida para um ponto individual, todos os pontos usarão essa similaridade, de 1 a 100. O padrão é 100

  • esquerda, topo, direita, baixo
    Inteiros opcionais que representam a área de busca. O padrão é a imagem inteira

Valores retornados

  • coordenada_x, coordenada_y
    Inteiros; coordenadas da primeira cor correspondente. Retorna -1, -1 quando a busca falhar

Descrição

Usa o modo de similaridade para obter a posição da primeira estrutura de cores em vários pontos que corresponda completamente na área.
Para usar o modo de desvio de cor, consulte Busca de cores em vários pontos no modo de desvio (screen.find_color).

Exemplo

imagem = screen.image()

x, y = imagem: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)
--
--[[
na área de 0, 0 no canto superior esquerdo a 100, 100 no canto inferior direito da imagem, encontrar o primeiro ponto cuja similaridade com 0xec1c23 seja superior a 90
e cuja cor na coordenada relativa (12, -3) tenha similaridade superior a 85 com 0xffffff
e cuja cor na coordenada relativa (5, -18) tenha similaridade superior a 90 com 0x00adee
e em que todos os pontos seguintes, seguindo a mesma lógica, também correspondam
--]]
--
-- o código equivalente é o seguinte:
--
x, y = imagem: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)
--
--[[
na área de 0, 0 no canto superior esquerdo a 100, 100 no canto inferior direito da imagem, encontrar o primeiro ponto cuja similaridade com 0xec1c23 seja superior a 90
e cuja cor na coordenada relativa (521-509, 485-488) tenha similaridade superior a 85 com 0xffffff
e cuja cor na coordenada relativa (514-509, 470-488) tenha similaridade superior a 90 com 0x00adee
e em que todos os pontos seguintes, seguindo a mesma lógica, também correspondam
--]]