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 l’intervention de trois types de récepteurs inégalement sensibles aux radiations monochromatiques, et intégrant leurs effets (Young 1801).
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).

Système additif RVB. C'est le système utilisé en informatique pour la représentation des couleurs car il est proche du matériel.
Chaque pixel résulte de la superposition de trois sous-pixel de couleurs rouge (R), verte(V) et bleu(B).
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 pixel : 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).
Les systèmes récents gèrent la transparence : On a alors un système RVBA. La transparence est fonction de la valeur de A.
Pour A = 0 le fond n'est pas modifié; pour A = 1 la couleur est opaque.
On peut aussi représenter une couleur par un nombre hexadécimal #ravebc dans lequel ra est la valeur hexadécimale de R, ve est la valeur hexadécimale de V et bc est la valeur hexadécimale de B.

Système TSV (HSB)
Le système le mieux adapté à la perception humaine des couleurs est le système TSV (HSB en anglais) : 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 (0 correspond à du noir).
Selon les systèmes la teinte varie entre 0 et 360, la saturation et la luminosité s'exprimant en pourcentages ou bien les trois valeurs sont comprises 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°.
On peut représenter une couleur par un point d'un cône de rayon s et de hauteur v.
On passe d'une représentation RVB à une représentation TSV (et réciproquement) par des transformations simples mais non linéaires.
Couleurs complémentaires :
Soit une couleur t, s, v. La couleur complémentaire est la couleur t', s' v' tels que:
t' = t − 180 si t >=180 et t' = t + 180 si t <180; s' = v.s / [v.(s − 1) + 1]; v' = v.(s − 1) + 1

Remarque : On trouve aussi le système TSL (HSL) voisin du TSV.


Le programme permet de choisir rapidement une couleur dans les deux systèmes et indique la correspondance.
Pour le système HSB, j'ai utilisé 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 à 360° sur le cercle des couleurs et H = 0,666 (bleu pur) à 240°.

Une case à cocher permet de choisir le système RVBA visualiser les couleurs transparentes.
Pout alpha = 1,0 on obtient une couleur opaque.

On peut cliquer sur la bande multicolore avec la souris. On affiche alors les composantes de la couleur dans les deux systèmes.