Chapitre 5 : Image couleur Pr. M. Talibi Alaoui Département Mathématique et Informatique
Principes de base de la vision couleur A. Principes généraux : Principes de base de la vision couleur L’oeil humain est capable de percevoir des rayonnements électromagnétiques dont la longueur d’onde est comprise entre 360 nm et 800 nm. Idéalement, une couleur devrait être caractérisée par son spectre C(f) pour une fréquence f.
L’œil analyse la couleur à travers 3 types de cellules sensibles au rouge (R = Red), au vert (G=green), et au bleu (B=bleu). Ces cellules sont vues comme trois filtres, caractérisés par leur réponse fréquentielle R0(f), G0(f) et B0(f). La couleur perçue par l’oeil se caractérise par trois nombres positifs r0, g0 et b0, correspondant aux réponses des 3 filtres. Par exemple :
Synthèse d’images couleur Dans ce chapitre : Présenter successivement les trois représentations les plus courantes de la couleur (RGB, NTSC et HSV). Nous verrons comment réaliser quelques transformations simples sur la couleur. Synthèse d’images couleur Il est possible de synthétiser toutes les couleurs perceptibles en superposant ( avec un dosage adéquat ) trois couleurs de base.
En télévision, on utilise trois substances de spectres différents qui doivent être choisis de telle sorte que l’essentiel des couleurs perceptibles soit synthétisable. Les intensités de 3 faisceaux d’électrons règlent en chaque point le dosage des trois couleurs de base.
L’écran est tapissée de trois substances dont les spectres d’émission (notés Si(f), pour i = 1, 2, 3) correspondent approximativement aux couleurs rouge, vert et bleu. Nous notons à présent : i : un indice variant de 1 à 3. Si(f) : les trois couleurs primaires du système de synthèse. si : le dosage de ces trois couleurs, Pi(f) : les réponses des cellules de l’œil. pi : les trois couleurs caractérisant la couleur perçue.
Le spectre de la couleur synthétisé est : La couleur perçue est caractérisée par : En remplaçant C(f) par sa valeur et en permutant les deux sommations, on obtient : avec :
Sous forme matricielle, ceci peut s’écrire : Ou M est la matrice contenant les mij. Pour synthétiser la couleur , il faut donc produire le dosage : En conséquence, la couleur ne sera synthétisable que si M est inversible. En pratique, un bon choix des couleurs de base permet cependant de synthétiser une grande partie des couleurs perceptibles.
B. Canaux RGB : Une couleur peut être représenté par un point dans un espace à trois dimensions, en portant sur les axes de représentation RGB, les valeurs de r, g et b. Exemple : Les trois canaux ( rouge, vert et bleu ) pour l’image house. On fait souvent appel à un système de coordonnées réduites. Pour cela, on pose : L = r + g + b
L est la somme des intensités dans les trois canaux de couleur. On définit les coordonnées réduites : Ces coordonnées réduites correspondent au dosage relatif des trois couleurs de base. On a toujours :
Il existe d’autres représentations de la couleur qui utilisent des repères différents dans l’espace des couleurs à trois dimensions : NTSC et HSV. C. Système NTSC : (National Television Systems Commitee) est le système de représentation des couleurs utilisé aux USA et au Japon pour la télévision. La couleur est représentée dans un nouveau repère YIQ.
Transformation linéaire : Matlab procure une fonction qui permet de passer de la représentation RGB à la représentation YIQ (NTSC) : rgb2ntsc
map_yiq = rgb2ntsc(map_rgb); [Y,I,Q] = rgb2ntsc([R,G,B]); Exemple : house avec YIQ Exemple : Compression d’images est meilleur sous YIQ. Comparer avec RGB D. Système HSV : Le système HSV est un système de coordonnées non linéaire de l’espace des couleurs.
Un point de cet espace est repéré par trois coordonnées : H = Hue ( Teinte ) S = Saturation V = Value ( Luminance )
Matlab fournit des fonctions pour transformer une table de couleurs de HSV vers RGB et inversement : map_rgb = hsv2rgb(map_hsv); map_hsv = rgb2hsv(map_rgb); On peut également transformer les trois canaux d’une représentation RGB en trois canaux HSV, et inversement : [H, S, V] = rgb2hsv(R,G,B) ; [R,G,B] = hsv2rgb(H, S, V) ; Exemple : les canaux H, S et V pour image house
E. Modification des couleurs d’une image On choisira de préférence le repère HSV. La procédure à suivre est la suivante : Transformer la table de couleurs, de RGB vers HSV. Modifier l’une des composantes H, S ou V selon l’effet désiré. Transformer la table de couleurs obtenue de HSV vers RGB.
Voici quelques exemples de manipulation possibles : Faire une permutation de teintes : remplacer H par H+0.5. Obtenir une image tel que : remplacer S par 0.5*S. Obtenir une image à couleurs vives : remplacer S par 2*S. Rendre l’image plus clair : remplacer V par 1.5*V.
F. Filtrage d’une image couleur Le filtrage se fait en filtrant séparément les matrices R, G et B. En principe, Il ne faut pas filtrer une image dans la représentation HSV : résultats difficile à prévoir Enfin, il ne faut jamais filtrer une image en format indexé. Exemple