PixelSearch e variações de tons

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

Lazyyy
Posts: 51
Joined: 27 Jan 2020, 21:56

PixelSearch e variações de tons

13 Oct 2020, 23:51

Quero saber quantas variações de tom RGB o pixel 0xA3C7C7 precisaria para encontrar o pixel 0x9EC6C5 (os dois são um tipo de azul bem clarinho) e como posso fazer esta comparação com outros pixels, utilizei 10 e está funcionando, mas queria mesmo saber como posso ver a diferença entre as duas cores de pixel, pra poder sempre utilizar a variação de tons correta em vez de ter que ficar mudando pixel por pixel

Code: Select all

CoordMode, Pixel, Window
PixelSearch, FoundX, FoundY, 942, 18, 1045, 43, 0xA3C7C7, 10, Fast RGB		;procurei pelo pixel 0xA3C7C7 e consegui achar o pixel 0x9EC6C5 utilizando 10 variações de tons RGB
If ErrorLevel = 0
{
	ExitApp
}
Tenho medo de usar variações demais e o script começar a encontrar outras cores ao invés da que eu estou procurando
User avatar
Gio
Posts: 1073
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: PixelSearch e variações de tons

14 Oct 2020, 09:21

Bom dia Lazyyy.

Entre os códigos de cores 0xA3C7C7 e 0x9EC6C5 a variação máxima é de 5 tons.

Para saber isso, precisamos primeiro quebrar os códigos nos valores de cada canal de cor,

Primeiro código:
A3
C7
C7


Segundo código:
9E
C6
C5


Depois, transformamos cada um dos valores hexadecimais em números decimais (somente por conveniência, já que nossos cérebros não estão acostumados a raciocinar matematicamente com números hexadecimais).

A3 = 163
C7 = 199
C7 = 199

9E = 158
C6 = 198
C5 = 197


Finalmente, diminuímos o valor de cada canal de um código pelo respectivo canal do outro código e vemos qual a diferença encontrada.

A3 - 9E = 163 - 158 = 5
C7 - C6 = 199 - 198 = 1
C7 - C5 = 199 - 197 = 2

Logo, concluímos que a maior diferença entre os canais é de 5 tons (neste caso, a que ocorreu no primeiro canal). Assim, o valor MÍNIMO de variation que permitiria dar match em 0x9EC6C5 quando estivermos buscando 0xA3C7C7 é 5.


:arrow: Muitas vezes você também pode ajustar o parâmetro variation na tentativa e erro, trocando o valor para mais e para menos até achar um valor que dê match com alta confiança. Mas é claro que isso pode não ser o caso sempre, então entender como o comando variation funciona pode sim ajudar a fazer um ajuste fino no seu código.

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 1 guest