2009-01-29 12 views
22

¿Hay alguna forma 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 simplemente compare las cadenas :)
Pero seguramente esa tarea manual se puede asignar a un pequeño algoritmo limpio.¿Existe alguna manera de comparar qué tan cerca están dos colores entre sí?

+1

Nosotros, los que sufren daltonismo, no estar de acuerdo con lo los colores están cerca, o diferente ... –

Respuesta

9

Delta-e, es un solo número que representa la 'distancia' que se percibe 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.

Cada uno va sobre las cosas de una manera diferente, pero en su mayor parte todos ellos requieren que se convertirá en un mejor (para comparación) modelo de color que RGB.

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

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

Puede revisar su trabajo con las calculadoras de color en línea:

22

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.

+1

Creo que esta es una respuesta mejor que la de David, el pecado Sin saber lo contrario, supongo que con OP encontrará que una comparación basada en HSL será más útil que una basada en RGB. –

+0

er ... la Op, no con Op .... –

+0

@ Adam Bellaire, ¿puedes explicar por qué podría ser? No estoy muy claro sobre las diferencias entre RGB y HSL yo mismo –

9

No estoy seguro de ningún algoritmo, es posible que desee considerar la conversión de 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

+0

¿Y las otras dimensiones? Desde el punto de vista de la perspectiva humana, dos colores pueden ser totalmente diferentes con el mismo valor H (por ejemplo, rojo y rosa). –

Cuestiones relacionadas