Comment calculer d'autres couleurs avec la même légèreté perçue qu'une valeur de gris donnée?

11

Ceci est lié à une question que j'ai posée sur tex.stackexchange , qui a un aspect couleur. Le résultat de cette question est l'image suivante:
contraste de valeur et de saturation

J'ai dessiné une série de carrés gris à gauche, avec une branche rouge partant à droite. Le but est d'avoir des carrés rouges différents avec une saturation différente, mais tous avec la même valeur de gris. Dans le modèle de couleur hsv, ils ont tous la même chose v, mais lorsque je convertis l'image en niveaux de gris à l'aide de Gimp, ils ne sont pas convertis en le même gris. L'impression visuelle est également que les carrés rouges de droite sont plus foncés que ceux de gauche.

Comment puis-je, avec un certain gris, calculer des couleurs avec une certaine teinte et la même valeur de gris (ou, mieux encore, avec la même impression de gris )? Les couleurs utilisées dans l'image sont toutes calculées, donc je préfère les solutions qui intègrent également les calculs.

J'ai peut-être utilisé des termes incorrects ici - je suis ingénieur en mécanique, veuillez donc me corriger le cas échéant, ou demander des éclaircissements.


La suggestion d'utiliser l'espace colorimétrique Lab m'a conduit à quelques conclusions:

  • Je peux utiliser la Lvaleur du modèle Lab pour définir une sorte de valeur de gris pour différentes couleurs. Dans le modèle hsv, c'est v. Je ne sais pas si j'ai le droit de comparer ces informations, mais je le ferai jusqu'à ce que quelqu'un se plaint.

  • Dans le modèle hsv, je peux également définir une "couleur de base" (une teinte), que je ne trouve pas dans le modèle Lab.

  • Dans le modèle hsv, j'ai 2 constantes (dans l'image ci-dessus: h= 0, v= 0,375) et une variable ( s).

  • Jusqu'à présent, je n'ai qu'une seule constante dans le modèle Lab. Cela ne suffit pas pour générer quelque chose de similaire à ce que j'ai déjà fait avec le modèle hsv.

Je suppose qu'il est temps de faire des expériences.


Terminé! Après avoir exécuté le code de conversion, c'était très simple. La première étape a été de définir le "rouge cible" à droite. J'ai calculé RGB2Lab (255,0,0) et changé la valeur L du résultat en L souhaité sur la figure (L = 62,5). Les couleurs sont calculées à l'aide d'une interpolation linéaire dans l'espace Lab de (L, 0,0) à (L, aTarget, bTarget). Le résultat:

entrez la description de l'image ici

Je vous remercie!

Christoph
la source
2
Il y a une tonne de choses que vous pouvez trouver utiles dans l'entrée de wikipedia, mais j'ai trouvé ( en.wikipedia.org/wiki/HSL_and_HSV#Disadvantages ) une incidence possible sur votre problème, en particulier: "Parce que HSL et HSV sont définis uniquement avec référence à un espace RVB, ce ne sont pas des espaces colorimétriques absolus: pour spécifier précisément une couleur, il faut non seulement signaler les valeurs HSL ou HSV, mais également les caractéristiques de l'espace RVB sur lequel elles sont basées, y compris la correction gamma utilisée. "
horatio
L'idée évidente est donc de spécifier l'espace colorimétrique gamma et RVB (si possible!) Lors d'une tentative de conversion.
horatio
2
Une idée encore meilleure est RVB → L * a * b * → RVB; car Lab est conçu pour rapprocher la vision humaine et la légèreté est l'une de ses dimensions.
Jari Keinänen
@koiyu Lab est la façon dont je suggère également de trouver des correspondances grises. (Vous m'avez battu! Je me moquais de la réponse ci-dessous lorsque vous avez posté cela.)
Nick
J'évitais la discussion problématique de la perception des couleurs :)
horatio

Réponses:

10

Vous pouvez utiliser l' espace colorimétrique Lab pour trouver vos correspondances. Les couleurs avec la même valeur L que votre gris cible seront presque identiques lors de la conversion en niveaux de gris.

Par exemple, un gris Lab de (50, 0, 0), ressemblera beaucoup aux rouges Lab (50, 30, 0), (50, 50, 30) et (50, 50, 50) lors de la conversion en niveaux de gris. Les exemples ci-dessous utilisent Photoshop (Image> Mode> Niveaux de gris) pour convertir de Lab en gris: Couleurs originales de laboratoire
Converti en niveaux de gris

pseudo
la source
Cela ressemble à quelque chose que je veux! Je vous remercie. Cependant, je ne peux pas utiliser Lab directement avec mon ensemble d'outils, j'ai donc besoin d'une sorte d'algorithme de conversion. Koiyu a suggéré de convertir RGB -> Lab -> RGB, et je vais essayer de l'implémenter.
Christoph
1
J'ai trouvé ce qui suit: http://www.brucelindbloom.com/index.html?Equations.html . Je ne sais pas si les conversions sont correctes et j'ai l'impression qu'un peu de magie est encore nécessaire.
Christoph
Ces fonctions de conversion semblent utiles.
Nick
Et ils semblent en effet un peu plus simples ...
Christoph
@ Nick je peux faire tous les calculs avec une calculatrice, ce qui est bien. Cependant, je dois implémenter les conversions de modèle de couleur dans mon document LaTeX, ce qui me donne mal à la tête ici et là. Quand c'est fait, je posterai le résultat et accepterai votre réponse.
Christoph
4

Ainsi, les conseils ci-dessus de Nick ne fonctionnent que pour 50% de luminance. Si vous appliquez une autre valeur L identique à différentes couleurs, le résultat du gris est différent.

Il doit y avoir un calcul pour cela, mais vous pouvez le faire à l'écran à l'œil nu.

Si vous créez toutes les couleurs que vous souhaitez puis déposez un élément gris (illustrateur) ou un calque (photoshop) avec son mode de transparence sur "couleur" (ou saturation ou teinte), cela fera tous les éléments ci-dessous pour révéler sa luminosité.

Vous devez vous assurer que toutes les couleurs en dessous de cet élément gris ont une saturation de 100, sinon vous obtiendrez des résultats gris, plutôt que de belles couleurs.

Maintenant, le problème est: Avec toutes les méthodes ci-dessus, vous obtiendrez tous les éléments la "même luminosité à l'intérieur du profil RVB utilisé", c'est-à-dire le même gris pour le "périphérique" sélectionné, et le pire: l'oeil est un périphérique et il y a des différences.

Vous pouvez montrer les mêmes couleurs à différentes personnes et elles ne trouveront pas la même "uniformité" que les autres.

Ajoutez cela au fait que vous définissez ces couleurs comme «même luminosité» dans l'appareil sélectionné, et non seulement elles sont toutes «estimées», dès que vous les affichez dans un autre appareil, l'effet échouera, car chaque appareil a sa propre capacité à éclairer les éléments rouges verts ou bleus avec des intensités différentes, de sorte que vous pourriez obtenir, par exemple des éléments rouges.

De plus, si vous faites un mélange d'un gris à une couleur comme suggéré ci-dessus, vous devez vous assurer que l'élément gris a au moins 1/255 minimum dans chaque canal (c'est-à-dire pas plus de gris) ou le logiciel considérera le gris d'origine comme 0-teinte, ce qui vous donnera des tons moyens rouges (car un mélange entre 0 teinte et toute autre couleur sera à mi-chemin vers un rouge)

Je suis un expert en prépresse depuis les années 90 et mon conseil est: si vous allez avec les mathématiques, vous devez utiliser les mathématiques pour l'œil (capacités visuelles) ainsi que celles de l'appareil que vous montrerez. ces chiffres.

Bonne chance.

sergio
la source