Couleurs en physique et en informatique


La donnée de la longueur d'onde d'une lumière n'est pas suffisante pour préciser la couleur perçue par un observateur mais l’expérience montre que, dans un système de référence bien défini on peut déterminer une couleur quelconque par un ensemble de trois données numériques. Parmi les hypothèses proposées pour expliquer que la perception colorée ne dépend que de trois variables, celle qui paraît la plus acceptable suppose dans le système visuel de l'homme l’intervention de trois types de récepteurs (les cônes de la rétine) inégalement sensibles aux radiations monochromatiques, et intégrant leurs effets (Young 1801).
On sait que la majorité des animaux ont une vision des couleurs différente de celle de l'homme. En particulier beaucoup d'oiseaux possèdent quatre types de cônes et voient dans le proche ultra-violet.

L’expérience montre qu’une même sensation de couleur peut être due à des lumières de compositions spectrales très diverses. Ainsi, des sensations de couleur jaune voisines peuvent être produites soit par une lumière monochromatique de longueur d’onde voisine de 580 nm, soit par une lumière blanche privée partiellement de ses composantes bleues, soit par un mélange de lumières rouges et vertes dans lequel le jaune est absent. Il est en effet possible d'obtenir des couleurs nouvelles par addition de lumières différentes (synthèse additive) ou par absorption de couleurs (synthèse soustractive).

Le système le mieux adapté à la perception humaine des couleurs est le système TSV (HSV en anglais pour hue, saturation, value) : Teinte, Saturation, Brillance. La teinte correspond au nom de la couleur, la saturation à son intensité ou profondeur et la brillance au pourcentage de blanc ajouté à la couleur.
En général, la teinte varie entre 0 et 360. La saturation et la luminosité s'expriment alors soit en pourcentages soit par une valeur comprise entre 0 et 1.
Quand on exprime la teinte entre 0 et 360, on parle de cercle des couleurs. Dans ce cercle le rouge correspond à 0° ou 360°, le jaune à 60°, le vert à 120°, le cyan à 180°, le bleu à 240° et le magenta à 300°. Dans cette représentation, des couleurs complémentaires sont séparées par 180°.

La conversion entre les deux systèmes est étudiée dans une autre page.

La couleur en informatique.
Moniteurs :
Chaque pixel d'un moniteur couleur est constitué de trois sous-pixels : rouge, vert et bleu dont on peut régler l'intensité d'émission. La couleur du pixel est fonction de l'intensité des sous-pixels : c'est le système additif RVB. Le nombre de couleurs pouvant être affichées est fonction du nombre de niveaux d'intensité autorisés par la mémoire vidéo du système.
Les systèmes 4 bits et 8 bits autorisent 16 et 256 couleurs qui sont choisies par le programme d'exploitation dans une palette de couleurs prédéfinies et qui sont sensées se rapprocher le plus possible du choix de l'utilisateur.
Dans les vrais systèmes RVB, il existe 256 niveaux différents d'intensité pour chaque phosphore : cela conduit à un codage sur 24 bits et autorise 16777216 couleurs différentes. Il existe des systèmes intermédiaires (15 bits ou 16 bits, 32768 ou 65635 couleurs) où les niveaux sont codés sur 16 bits dont les 3 ou 2 derniers sont nuls. Le noir correspond au triplet (0, 0, 0) et le blanc au triplet (255, 255, 255).

Imprimantes :
On utilise en général le système soustractif CMJ.
Des encres dont l’une est jaune (elle transmet le vert et le rouge et absorbe le bleu), la deuxième magenta absorbe le vert et la troisième bleu-vert (cyan) absorbe le rouge, sont superposées sur un support blanc qui réfléchit les longueurs d'ondes non absorbées par les encres. La superposition des trois encres au maximum de saturation doit donner du noir. Comme en réalité, on obtient un gris sombre, on ajoute souvent une encre noire pure et on a alors le système CMJN.


Le programme permet de tester un système additif et un système soustractif.

Le programme permet de choisir une couleur dans les systèmes RGB et HSV et il indique la correspondance entre les deux systèmes de codage.
Pour le système RGB chaque couleur de base est codée par un entier compris entre 0 et 255.
Pour le système HSV, j'ai respecté la convention ou chaque composante est un réel compris entre 0,0 et 1,0.
Ainsi la teinte H = 1,0 (rouge pur) correspond à 0° et à 360° sur le cercle des couleurs, H = 0,666 (bleu pur) à 240°...
Les systèmes modernes gèrent la transparence : on utilise alors un système RGBA.
Une quatrième donnée Alpha donne la valeur de la transparence :
avec alpha = 1,0 on obtient une couleur opaque et avec alpha = 0, on voit uniquement la couleur du fond.

On pourra constater que la perception d'une couleur donnée dépend des couleurs des zones voisines.