2009-01-29 7 views
22

Existe-t-il un moyen de comparer la proximité entre deux couleurs? Si dire les deux sont bleus.
À l'heure actuelle, la façon dont nous les comparons consiste à assigner manuellement chaque couleur possible à une famille de couleurs (rouge, vert, bleu ...). Et puis comparez simplement les chaînes :)
Mais sûrement cette tâche manuelle peut être assignée à un petit algorithme soigné.Existe-t-il un moyen facile de comparer la proximité de deux couleurs?

+1

Nous qui sommes daltoniens, peut-être en désaccord avec ce que les couleurs sont proches, ou différentes ... –

Répondre

9

Delta-e, est un numéro unique qui représente la perception 'distance' entre deux couleurs. Plus le nombre est bas, plus les couleurs sont similaires à l'œil humain.

Il existe plusieurs façons de le calculer ... CIE76 (alias CIE 1976 ou dE76) étant le plus populaire.

Chacun va sur les choses d'une manière différente, mais pour la plupart ils ont tous vous obliger à se convertir à un meilleur (pour comparaison) modèle de couleur que RVB. Pour CIE76, vous convertissez simplement vos couleurs dans l'espace colorimétrique LAB, puis calculez la distance tridimensionnelle entre elles.

Wikipedia a toutes les formules: http://en.wikipedia.org/wiki/Color_difference

Vous pouvez vérifier votre travail avec les calculatrices de couleur en ligne:

22

Vous souhaitez probablement convertir les couleurs en un modèle HSL (Teinte, Saturation, Luminosité), puis comparer les valeurs dans les seuils dans l'ordre TSL. Si la teinte est dans une tolérance considérée comme "close", vérifiez la "proximité" de la saturation, puis la luminosité.

+1

Je pense que c'est une meilleure réponse que celle de David, péché ce sans savoir autrement je devinerais avec OP trouveront une comparaison basée sur HSL sera plus utile que celle basée sur RVB. –

+0

euh ... l'Op, pas avec Op .... –

+0

@Adam Bellaire, pouvez-vous expliquer pourquoi cela pourrait être? Je ne suis pas trop clair sur les différences entre RGB et HSL moi-même –

9

Je ne suis pas sûr de tous les algorithmes, vous pouvez envisager de convertir les valeurs RVB (Rouge, Vert, Bleu) en HSB (Teinte, Saturation, Luminosité).

La teinte est essentiellement «couleur», vous pouvez donc comparer simplement la proximité des valeurs de teinte.

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

+0

Et les autres dimensions? Du point de vue humain, deux couleurs peuvent être totalement différentes avec la même valeur H (par exemple rouge et rose). –

Questions connexes