Encontrar cores no modo de similaridade em vários pontos (screen.find_color)
Declaração
coordenada_x, coordenada_y = screen.find_color({
[find_all = pesquisar_múltiplos_resultados,]
[max_results = número_máximo_de_resultados,]
[max_miss = número_máximo_de_pontos_sem_correspondência,]
[csim_algorithm = algoritmo_de_similaridade_de_cor,]
{coordenada_x_inicial, coordenada_y_inicial, cor_inicial[, similaridade_inicial]},
{coordenada_x_de_deslocamento*, coordenada_y_de_deslocamento*, cor_de_deslocamento*[, similaridade_de_deslocamento*]},
{coordenada_x_de_deslocamento*, coordenada_y_de_deslocamento*, cor_de_deslocamento*[, similaridade_de_deslocamento*]},
...
} [, similaridade_global, esquerda, topo, direita, baixo ])
Parâmetros
-
pesquisar múltiplos 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. -
número máximo de resultados
Inteiro opcional; quando a etiquetafind_all(pesquisar múltiplos resultados) é true, indica a quantidade máxima de resultados. O máximo é 1000; o padrão é 100. -
número máximo de pontos sem correspondência
Inteiro opcional; quantidade máxima de pontos sem correspondência permitida. O padrão é 0, ou seja, todos os pontos devem corresponder. -
algoritmo de similaridade de cor (desde a versão 20250302)
Inteiro opcional que representa o algoritmo de similaridade de cor; o padrão é 0.Algoritmo de similaridade de cor
0 é o algoritmo padrão do XXT; o gradiente é acentuado e a diferença reduz rapidamente a similaridade
1 é o algoritmo de Manhattan; o gradiente é suave
2 é o algoritmo euclidiano; o gradiente é suave -
coordenada_x_inicial, coordenada_y_inicial
Inteiros que representam as coordenadas iniciais. Elas não restringem a busca a um único ponto; servem apenas como coordenadas relativas dos pontos de deslocamento. Se não for necessário deslocamento, use 0, 0. -
cor inicial
Inteiro que representa a cor a ser pesquisada nesse ponto. -
similaridade inicial
Inteiro opcional que representa a similaridade da cor pesquisada nesse ponto, no intervalo de 1 a 100; o padrão é 100. -
coordenada_x_de_deslocamento*, coordenada_y_de_deslocamento*
Inteiros que representam as coordenadas de uma posição deslocada. -
cor_de_deslocamento*
Inteiro que representa a cor a ser correspondida na posição deslocada. -
similaridade_de_deslocamento*
Inteiro opcional que representa a similaridade da cor na posição deslocada, no intervalo 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 nenhum ponto tiver uma similaridade própria, todos usarão este valor, no intervalo de 1 a 100; o padrão é 100. -
esquerda, topo, direita, baixo
Inteiros opcionais que representam a área de busca; o padrão é a tela inteira.
Valores retornados
- coordenada_x, coordenada_y
Inteiros; retornam as coordenadas da primeira cor correspondente. Em caso de falha, retornam -1, -1.
Observações
Procura no modo de similaridade a posição da primeira estrutura de cores em vários pontos que corresponda completamente na região.
Os parâmetros de coordenadas e os valores retornados por esta função são afetados pelo sistema inicializado porscreen.init.
Exemplo
x, y = screen.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 região de (0, 0) no canto superior esquerdo a (100, 100) no canto inferior direito, encontra o primeiro ponto com similaridade superior a 90 com 0xec1c23
e cuja posição relativa (12, -3) tenha uma cor com similaridade superior a 85 com 0xffffff
e cuja posição relativa (5, -18) tenha uma cor com similaridade superior a 90 com 0x00adee
e que também corresponda aos demais pontos da mesma maneira
--]]
--
-- Código equivalente:
--
x, y = screen.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 região de (0, 0) no canto superior esquerdo a (100, 100) no canto inferior direito, encontra o primeiro ponto com similaridade superior a 90 com 0xec1c23
e cuja posição relativa (521-509, 485-488) tenha uma cor com similaridade superior a 85 com 0xffffff
e cuja posição relativa (514-509, 470-488) tenha uma cor com similaridade superior a 90 com 0x00adee
e que também corresponda aos demais pontos da mesma maneira
--]]
--
-- Sem quebras de linha ou indentação, o efeito é:
x, y = screen.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)
--
x, y = screen.find_color({ -- demonstração de correspondência inversa; produz resultado quando executado na tela principal do 5C
{ 516, 288, 0xffffff },
{ 519, 286, 0xffffff },
{ 521, 289, 0xffffff },
{ 516, 296, 0xffffff },
{ 522, 297, 0xffffff },
{ 520, 295, 0xffffff, -10 }, -- só corresponde quando a similaridade desta cor com 0xffffff é menor que 10; idem abaixo
{ 515, 291, 0xffffff, -10 },
{ 518, 284, 0xffffff, -10 },
{ 523, 298, 0xffffff, -10 },
{ 514, 298, 0xffffff, -10 },
{ 514, 296, 0xffffff, -10 },
}, 90) -- sem parâmetros de área, procura na tela inteira
--
results = screen.find_color({ -- demonstração de saída de todas as correspondências na área
{ 527, 278, 0xde1d26 },
{ 524, 285, 0x007aff },
{ 555, 292, 0xe4ddc9 },
{ 536, 314, 0xffde02 },
{ 502, 291, 0xffde02 },
{ 502, 283, 0xe4ddc9 },
find_all = true, -- esta etiqueta retorna uma tabela com as posições de todas as correspondências na área, no formato { {x1, y1}, {x2, y2}, ...}
}, 90) -- sem parâmetros de área, procura na tela inteira