COMPARAR DUAS CORES RGB E LOCALIZAR UMA PROXIMA

 Tópico anterior Próximo tópico Novo tópico

COMPARAR DUAS CORES RGB E LOCALIZAR UMA PROXIMA

C#

 Compartilhe  Compartilhe  Compartilhe
#498289 - 08/10/2021 22:09:14

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


galera acho que isso aqui é uma tarefa difícil de fazer eu tenho duas cartelas de cores cadastradas minha funcção retorna uma cor especifica rgb como comprar esse rgb com a casrtela de cores que tenho cadastrada para achar uma cor próxima de cada cartela

cartela 1 = preto 0,0,0
cartela2 =  cinza   128,128,128  
corteste =  71 74  81

formulax


result =formulax










#498294 - 11/10/2021 09:39:37

COQUITO
BELO HORIZONTE
Cadast. em:Junho/2014


nao entendi muito bem rsrs
mais vc pode validar a cor que vc tem cadastrada com o string.Contains()

dim color1 as string='0,0,0'
dim color2 as string= 'aqui recebe a nova cor
if not  color.Contains(color1) then
' se nao existe a cor registrar
end if









#498296 - 11/10/2021 11:22:41

OCELOT
SOROCABA
Cadast. em:Março/2012


No geral você tem que tratar as cores como coordenadas em um espaço 3D e calcular a distancia entre os dois pontos, a menor distancia seria a cor mais parecida

Na Wikipédia existem exemplos das fórmulas usadas https://en.wikipedia.org/wiki/Color_difference, a mais básica é apenas a diferença linear, as mais complexas tentam levar em conta a percepção de cores pelo olho humano, em C# ficaria algo do tipo
double Distancia(int R1, int G1, int B1, int R2, int G2, int B2)
{
    var dR = R1 - R2;
    var dG = G1 - G2;
    var dB = B1 - B2;
    return Math.Sqrt(dR * dR + dG * dG + dB * dB);
}

Então você teria que calcular a distancia entre a cor informada e todas que você tem cadastradas, e pegar o menor valor que encontrar, esse vai ser a cor mais próxima da informada



#498299 - 11/10/2021 14:05:41

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Citação:
:
nao entendi muito bem rsrs
mais vc pode validar a cor que vc tem cadastrada com o string.Contains()

dim color1 as string='0,0,0'
dim color2 as string= 'aqui recebe a nova cor
if not  color.Contains(color1) then
' se nao existe a cor registrar
end if





obrigado pela resposta



#498300 - 11/10/2021 14:23:05

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Citação:
:
No geral você tem que tratar as cores como coordenadas em um espaço 3D e calcular a distancia entre os dois pontos, a menor distancia seria a cor mais parecida

Na Wikipédia existem exemplos das fórmulas usadas https://en.wikipedia.org/wiki/Color_difference, a mais básica é apenas a diferença linear, as mais complexas tentam levar em conta a percepção de cores pelo olho humano, em C# ficaria algo do tipo
double Distancia(int R1, int G1, int B1, int R2, int G2, int B2)
{
    var dR = R1 - R2;
    var dG = G1 - G2;
    var dB = B1 - B2;
    return Math.Sqrt(dR * dR + dG * dG + dB * dB);
}

Então você teria que calcular a distancia entre a cor informada e todas que você tem cadastradas, e pegar o menor valor que encontrar, esse vai ser a cor mais próxima da informada

obriagado irei tentar dessa forma






 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário