Lors de la conversion de RVB en niveaux de gris, il est dit que des pondérations spécifiques aux canaux R, V et B doivent être appliquées. Ces poids sont: 0,2989, 0,5870, 0,1140.
On dit que la raison en est une perception / sensibilité humaine différente envers ces trois couleurs. Parfois, on dit aussi que ce sont les valeurs utilisées pour calculer le signal NTSC.
Cependant, je n'ai pas trouvé de bonne référence pour cela sur le Web. Quelle est la source de ces valeurs?
Réponses:
Les numéros spécifiques dans la question proviennent du CCIR 601 (voir le lien Wikipedia ci-dessous).
Si vous convertissez RVB -> niveaux de gris avec des nombres légèrement différents / des méthodes différentes, vous ne verrez pas beaucoup de différence sur un écran d'ordinateur normal dans des conditions d'éclairage normales - essayez-le.
Voici quelques liens supplémentaires sur la couleur en général:
Wikipédia Luma
Site Web exceptionnel de Bruce Lindbloom
chapitre 4 sur la couleur dans le livre de Colin Ware, «Information Visualization», isbn 1-55860-819-2; ce long lien vers Ware dans books.google.com peut fonctionner ou non
cambridgeincolor : excellents "tutoriels bien rédigés sur la façon d'acquérir, d'interpréter et de traiter des photographies numériques en utilisant une approche visuellement orientée qui met l'accent sur le concept plutôt que sur la procédure"
Si vous rencontrez des RVB "linéaires" ou "non linéaires", voici une partie d'une vieille note pour moi-même à ce sujet. Répétez, en pratique, vous ne verrez pas beaucoup de différence.
RVB -> ^ gamma -> Y -> L *
En science de la couleur, les valeurs RVB courantes, comme dans html rgb (10%, 20%, 30%), sont dites "non linéaires" ou corrigées gamma . Les valeurs "linéaires" sont définies comme
où gamma est de 2,2 pour de nombreux PC. Les RVB habituels sont parfois écrits sous la forme R 'G' B '(R' = Rlin ^ (1 / gamma)) (clic-langue des puristes) mais ici je laisse tomber le '.
La luminosité sur un écran CRT est proportionnelle à RGBlin = RGB ^ gamma, donc 50% de gris sur un CRT est assez sombre: 0,5 ^ 2,2 = 22% de la luminosité maximale. (Les écrans LCD sont plus complexes; de plus, certaines cartes graphiques compensent le gamma.)
Pour obtenir la mesure de luminosité appelée à
L*
partir de RVB, divisez d'abord RVB par 255 et calculezC'est
Y
dans l'espace colorimétrique XYZ; c'est une mesure de la "luminance" de la couleur. (Les vraies formules ne sont pas exactement x ^ gamma, mais proches; restez avec x ^ gamma pour une première passe.)Finalement,
la source
J'ai trouvé que cette publication faisait référence dans une réponse à une question similaire précédente. C'est très utile:
http://cadik.posvete.cz/color_to_gray_evaluation/
Il montre des «tonnes» de méthodes différentes pour générer des images en niveaux de gris avec des résultats différents!
la source
Voici du code en c pour convertir RVB en niveaux de gris. La pondération réelle utilisée pour la conversion RVB en niveaux de gris est 0,3R + 0,6G + 0,11B. ces poids ne sont pas absolument essentiels pour que vous puissiez jouer avec eux. Je les ai faits 0.25R + 0.5G + 0.25B. Cela produit une image légèrement plus sombre.
REMARQUE: le code suivant suppose le format de pixel xRGB 32 bits
la source
0.11111111 * ((G + (G<<1) + R) <<1) + B)
. Cela équivaut à(2*R+6*G+B) / 9)
ou0.222 R + 0.666 G + 0.111 B
. Avant de passer à la production, comparez à une formule précise pour divers cas de test.Voici un article sur la façon dont ces nombres (ou des nombres similaires) ont été dérivés:
https://web.archive.org/web/20160303201512/http://www.cis.rit.edu/mcsl/research/broadbent/CIE1931_RGB.pdf
la source
Consultez la FAQ Couleur pour plus d'informations à ce sujet. Ces valeurs proviennent de la standardisation des valeurs RVB que nous utilisons dans nos écrans. En fait, selon la FAQ Color, les valeurs que vous utilisez sont obsolètes, car ce sont les valeurs utilisées pour la norme NTSC d'origine et non pour les moniteurs modernes.
la source
La «source» des coefficients affichés sont les spécifications NTSC qui peuvent être vues dans Rec601 et Caractéristiques de la télévision .
La "source ultime" sont les expériences de la CIE vers 1931 sur la perception humaine des couleurs. La réponse spectrale de la vision humaine n'est pas uniforme. Des expériences ont conduit à une pondération des valeurs trichromatiques en fonction de la perception. Nos cônes L, M et S 1 sont sensibles aux longueurs d'onde lumineuses que nous identifions comme "Rouge", "Vert" et "Bleu" (respectivement), d'où proviennent les couleurs primaires trichromatiques. 2
Les pondérations spectrales de la lumière linéaire 3 pour sRGB (et Rec709) sont:
R lin * 0,2126 + G lin * 0,7152 + B lin * 0,0722 = Y
Ceux-ci sont spécifiques aux espaces de couleurs sRGB et Rec709, qui sont destinés à représenter des moniteurs d'ordinateur (sRGB) ou des moniteurs HDTV (Rec709), et sont détaillés dans les documents ITU pour Rec709 et BT.2380-2 (10/2018)
NOTES (1) Les cônes sont les cellules de détection de couleur de la rétine de l'œil.
(2) Cependant, les longueurs d'onde tristimulus choisies ne sont PAS au "pic" de chaque type de cône - au lieu de cela, les valeurs tristimulus sont choisies de telle sorte qu'elles stimulent sensiblement plus sur un type de cône particulier qu'un autre, c'est-à-dire la séparation du stimulus.
(3) Vous devez linéariser vos valeurs sRGB avant d'appliquer les coefficients. J'en discute dans une autre réponse ici.
la source
Ces valeurs varient d'une personne à l'autre, en particulier pour les personnes daltoniennes.
la source
est tout cela vraiment nécessaire, la perception humaine et CRT vs LCD varieront, mais l'intensité RVB ne le fait pas, pourquoi pas
L = (R + G + B)/3
et régler le nouveau RVB sur L, L, L?la source