J'ai quelques couleurs en RVB en [0,1] et je veux trouver un moyen d'évaluer leur similitude, telle que perçue par un humain.
J'ai deux idées en tête, mais je suis sûr qu'il existe également d'autres options, mais je ne sais pas laquelle est la meilleure, ou si ce n'est pas la meilleure, mais seulement des compromis.
Ma première idée est de traiter les couleurs RVB comme des points XYZ et de calculer leur distance.
Une autre idée que j'ai est de traiter les valeurs RVB comme un histogramme et d'utiliser le produit scalaire pour obtenir une valeur de similitude entre elles, où une valeur plus grande est meilleure.
Je sais cependant que tous les canaux de couleur n'ont pas la même luminosité perçue, alors peut-être devrais-je pondérer les canaux de couleur différemment dans les deux cas?
Je pense également que j'aurais peut-être besoin de faire une correction sRGB sur les valeurs de couleur (comme, sqrt chaque canal de couleur).
Je sais également qu'il existe d'autres espaces colorimétriques, alors peut-être que l'un d'eux serait mieux à donner une valeur de similitude.
Un autre défi à cela peut être que différents affichages afficheront différemment les mêmes valeurs de couleur. Je ne sais pas si c'est pertinent dans ce cas.
Quelqu'un est-il en mesure de fournir une aide / direction?
Réponses:
Il s'agit d'un sujet énorme, et se trouve librement sous la bannière des modèles d'apparence de couleur . Pourquoi n'est-ce pas strictement une formation plus simple est due à la nature psychophysique de la couleur dans la mesure où la couleur n'existe pas au-delà de l'organisme humain.
Le meilleur conseil est, tout comme la cryptographie, ne lancez pas le vôtre; il est probable que vous arriviez à un système sous-optimal qui, dans le meilleur des cas, heurtera des murs déjà touchés par d'autres chercheurs dans le domaine. Si vous basez votre travail sur des modèles et des recherches existants, vous pourriez trouver qu'ils sont plus précis pour vos besoins [1].
On pourrait pointer les développements historiques autour des CAM, mais il est plus facile ici de suggérer que vous recherchiez le modèle de codage couleur IPT et son équivalent cylindrique qui modélise la couleur et la teinte sous forme d'angle. Les évolutions du modèle IPT surmontent la plupart des problèmes du modèle Lab précédent et simplifient une partie du travail impliqué dans CIECAM02.
IPT, et chaque espace colorimétrique RVB d'ailleurs, sont ancrés dans la recherche de la CIE de 1931. En tant que tels, ces types de problèmes sont résolus à un niveau inférieur.
[1] Cette réponse élargie est due au commentaire de M. Wolfe ci-dessous dans une tentative d'expliquer pourquoi le déploiement de votre propre solution pourrait être une approche sous-optimale.
la source
Si une métrique complexe est acceptable, je suggérerais de regarder l'approche basée sur la perception décrite ici . La métrique est conçue pour sélectionner la différence de perception de deux images. Il existe deux tests principaux pour cela: basé sur la luminance et basé sur la couleur. La première permet de répondre à la question de l'importance du changement de luminance en estimant un facteur de seuil non uniforme basé sur la sensibilité aux changements de contraste en fonction des fréquences spatiales de l'image. Le second est basé sur la distance euclidienne dans l'espace colorimétrique CIE LAB, mais légèrement modifié pour rendre la différence de couleur moins importante lorsque la luminance est dans les gammes mésopique et scotopique. Une liste des articles liés à cette métrique peut être trouvée ici .
la source