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 etiquetafind_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 é 1Valores 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-direitaA função de busca de cores na tela
screen.find_colornã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 é 0Algoritmo 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
--]]