Qu'est-ce qu'une bonne métrique de similitude des couleurs?

8

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?

Alan Wolfe
la source
4
Avez-vous jeté un œil à cela ? Le RVB n'est pas un grand espace colorimétrique pour faire des comparaisons liées à la perception humaine.
as
Bonne info merci! Je regardais cielab mais cet article dit que ce n'est pas le meilleur. Je travaille malheureusement avec des données source RVB, alors je dois trouver un moyen de convertir le RVB en quelque chose de mieux, mais le défi semble être que le RVB dépend du périphérique, contrairement à cielab, par exemple. Heureusement, une approximation moindre est suffisante pour mes besoins, si l'indépendance de l'appareil n'est pas vraiment réalisable avec les données source RVB.
Alan Wolfe
Consultez le site de Bruce Lindbloom, en particulier les différentes mesures DeltaE: brucelindbloom.com
David Kuri
Il existe un package Python complet pour la science des couleurs qui inclut certaines transformations: colour-science.org .
KAE

Réponses:

3

J'ai quelques couleurs en RVB en [0,1] et je veux trouver un moyen d'évaluer leur similitude, tel que perçu par un humain.

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.

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?

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.

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.

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.

troy_s
la source
3
Décourager les gens d'expérimenter les graphiques et de les mettre sur un pied d'égalité avec les algorithmes de cryptographie fabriqués à la main est ridicule.
Alan Wolfe
@AlanWolfe Étant donné qu'il existe un certain nombre de types de doctorats extrêmement brillants qui ont déjà passé d'innombrables heures et efforts à résoudre les problèmes de la question d'origine, je trouve votre contexte ridicule ridicule. Ne pas décourager quelqu'un de remplir ses bottes et de tenter de réinventer la roue.
troy_s
Vous devriez entendre les simples hacks recommandés par les chercheurs graphiques actifs. Tels que "le produit scalaire RGB, cela fonctionne vraiment très bien" de Peter Shirley.
Alan Wolfe
2
J'ai continué mais il y a une application de l'effondrement de la fonction d'onde pour la création d'images procédurales et de contenu. Il fonctionne en partie avec des pixels exactement identiques, donc fonctionne mieux avec le pixel art. Je cherchais à voir qu'il pourrait faire une correspondance plus douce pour une utilisation avec des images plus réalistes ou pour des règles de contenu procédural moins strictes. Consultez ce lien pour l' essentiel
Alan Wolfe
2
Ce n'est pas mon travail mais j'essayais de l'étendre. Je suis totalement d'accord, c'est cool! Hors sujet, mais voici mon travail indépendant hehe. blog.demofox.org/2016/02/22/…
Alan Wolfe
4

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 .

réintégrer
la source
3
Bienvenue dans Computer Graphics SE! En général, les réponses de lien uniquement sont fortement déconseillées sur SE, car elles pourraient devenir inutiles si ces liens devaient tomber. Veuillez inclure un bref résumé de leur contenu, afin que les gens puissent toujours comprendre exactement ce que vous proposez réellement sans avoir à s'appuyer sur les liens.
Martin Ender