D'abord, vous devez choisir e espace colorimétrique approprié vous voulez que les comparaisons de couleurs se produire dans (RVB, HSV, HSL, CMJN, etc.).
En supposant que vous voulez savoir à quel point deux points dans l'espace RGB 3-dimenionsal sont à l'autre, vous pouvez calculer la distance pythagoricienne entre eux, à savoir,
d2 = (r1 - r2)**2 + (g1 - g2)**2 + (b1 - b2)**2;
Cela vous donne en fait la place de la distance. (Prendre la racine carrée n'est pas nécessaire si vous comparez uniquement les valeurs au carré.)
Ceci suppose que vous voulez traiter les valeurs R, G et B de façon égale. Si vous souhaitez poids plutôt les composants de couleur individuels, comme ce qui se passe lors de la conversion RVB en niveaux de gris, vous devez ajouter un coefficient à chaque terme de la distance, à savoir,
d2 = 30*(r1-r2)**2 + 59*(g1-g2)**2 + 11*(b1-b2)**2;
Cela suppose la conversion populaire de RGB à niveaux de gris de 30% rouge + 59% vert + 11% bleu.
Mise à jour
Cette dernière équation devrait probablement être
d2 = (30*(r1-r2))**2 + (59*(g1-g2))**2 + (11*(b1-b2))**2;
Question similaire: http://stackoverflow.com/questions/1313/followup-finding-an-accurate-distance-between-colors – Kai