¿Hay alguna manera fácil de comparar cuán cerca están dos colores el uno del otro?

¿Hay alguna manera de comparar qué tan cerca están dos colores el uno del otro? Si decir que ambos son azules.
Por el momento, la forma en que los comparamos es asignar manualmente cada color posible a una familia de colores (rojo, verde, azul …). Y luego solo compare las cuerdas 🙂
Pero seguramente esa tarea manual se puede asignar a un pequeño algoritmo limpio.

Delta-e , es un número único que representa la “distancia” percibida entre dos colores. Cuanto menor sea el número, más similares serán los colores al ojo humano.

Hay algunas formas diferentes de calcularlo … CIE76 (también conocido como CIE 1976 o dE76) es el más popular.

  • CIE76
  • CMC l: c
  • dE94
  • dE2000

Cada uno realiza las cosas de una manera diferente, pero en su mayoría todos requieren que se convierta a un modelo de color mejor (por comparación) que RGB.

Para CIE76 básicamente convierte sus colores al espacio de color LAB, luego calcula la distancia tridimensional entre ellos.

Wikipedia tiene todas las fórmulas: http://en.wikipedia.org/wiki/Color_difference

Puede verificar su trabajo con calculadoras de colores en línea:

  • CIE76
  • CMC l: c

Probablemente desee convertir los colores a un modelo HSL (Matiz, Saturación, Luminosidad) y luego compare los valores dentro de los umbrales en el orden HSL. Si el matiz está dentro de una tolerancia considerada “cercana”, entonces verifique la “proximidad” de la saturación y luego la claridad.

No estoy seguro de ningún algoritmo, es posible que desee considerar convertir los valores RGB (rojo, verde, azul) en HSB (tono, saturación, brillo).

El tono es esencialmente “color”, por lo que puede comparar simplemente qué tan cerca están los valores de Hue.

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