Existe uma maneira fácil de comparar o quão próximas duas colors estão umas das outras?

Existe uma maneira de comparar o quão próximas duas colors estão uma da outra? Se disser que ambos são azuis.
No momento, a maneira como os comparamos é atribuir manualmente cada cor possível a uma família de colors (vermelho, verde, azul …). E então apenas compare as cordas 🙂
Mas certamente essa tarefa manual pode ser atribuída a um pequeno algoritmo.

Delta-e , é um número único que representa a distância percebida entre duas colors. Quanto menor o número, mais semelhantes são as colors ao olho humano.

Existem algumas maneiras diferentes de calculá-lo … CIE76 (também conhecido como CIE 1976 ou dE76) é o mais popular.

  • CIE76
  • CMC l: c
  • d94
  • dE2000

Cada um faz as coisas de uma maneira diferente, mas na maioria das vezes eles exigem que você converta para um modelo de colors melhor (para comparação) do que o RGB.

Para o CIE76, você basicamente converte suas colors no espaço de colors LAB e calcula a distância tridimensional entre elas.

A Wikipedia tem todas as fórmulas: http://en.wikipedia.org/wiki/Color_difference

Você pode verificar seu trabalho com calculadoras de colors on-line:

  • CIE76
  • CMC l: c

Você provavelmente deseja converter as colors em um modelo HSL (Matiz, Saturação, Claridade) e, em seguida, comparar os valores dentro de limites na ordem HSL. Se a tonalidade estiver dentro de uma tolerância considerada “próxima”, verifique a “proximidade” da saturação e, em seguida, a luminosidade.

Não tenho certeza de nenhum algoritmo, você pode querer considerar converter valores RGB (vermelho, verde, azul) em HSB (matiz, saturação, brilho).

Matiz é essencialmente “cor”, então você pode comparar simplesmente a proximidade dos valores de Matiz.

Veja http://en.wikipedia.org/wiki/HSV_color_space