Vous êtes sur la page 1sur 5

Faculté des Sciences TP2 Traitement d’images Session d’automne : 2015/2016

Kenitra Master Pr. Y. El merabet

TP de Traitement d’images
Séance 2 : Conversion d'espace couleur/Manipulations d’histogramme/
Filtrage des images

Dans ce deuxième TP, nous allons nous familiariser avec la bibliothèque de traitement d'images de
Matlab, en répondant à des besoins limités (changement d'espace couleur, manipulation d’histogramme,
filtrage des images, etc.) mais utiles pour des problèmes plus complets. Il sera demandé aux étudiants
d’implémenter quelques fonctions équivalentes à celles de Matlab.

 Conversion d'espace couleur

 Définition :

La représentation couleur est un élément décisif dans beaucoup d’applications de vision par ordinateur et
de traitement d'image. Un espace de couleurs est un système à n-dimensions utilisé pour représenter les
couleurs. Généralement, un espace de couleurs est tridimensionnel. Une couleur se caractérise alors par
ses coordonnées selon les trois axes de l’espace. Les espaces de couleurs peuvent être classés selon
plusieurs critères. Certains sont classés selon les domaines d’applications.

Les systèmes de primaires : RGB, XYZ, CMY


Les espaces luminance-chrominance : AC1C2, Y Ch1Ch2, YUV, YIQ, YcbCr, L*u*v*, L*a*b*
Les systèmes perceptuels : L*C*H*, HSL, IHSL
Les systèmes d’axes indépendants : I1I2I3

 Rappel de quelques espaces couleur :

 L’espace YCh1Ch2 : La transformation de l’espace RGB en l’espace YCh1Ch2 est donnée par :

 L’espace YUV : Le modèle Y UV est un modèle de représentation de la couleur dédié à la vidéo


analogique et utilisé dans les standards vidéo PAL et SECAM
Faculté des Sciences TP2 Traitement d’images Session d’automne : 2015/2016
Kenitra Master Pr. Y. El merabet

 L’espace YCbCr : est le standard international dédié au codage digital des images de la télévision
numérique.

La boîte à outils images de Matlab gère les espaces de couleur RGB, HSV, YCbCr, NTSC. Les exemples
ci-dessous permettent de se rendre compte de l'utilisation/implémentation d’un espace de couleur.

 Travail demandé :

En vous aidant de l’index des opérateurs disponibles dans la documentation de Matlab, effectuer les
opérations suivantes en visualisant chaque étape :

 Charger l’image car.bmp dans votre espace de travail.


 Changer l’espace couleur de l’image de Rouge-Vert-Bleu en Teinte-Saturation-Luminance.
 Changer l’espace couleur de cette même image en l’espace YCbCr
 Dans la console, Taper :
 A =[1 4 7 10 ; 2 5 8 11 ; 3 6 9 12]
 B =[7 7 5 7 ; 12 4 11 19 ; 3 8 12 2]
 C =[12 10 9 0 ; 3 3 2 2 ; 1 0 1 1]
 F=cat(3,A,B,C)
 Z = reshape(F,[],3) (reshape(A,m,n) reconstruit la matrice A avec m lignes et n
colonnes)
 Taper reshape(Z,size(F))
 Implémenter l’opérateur RGB2YCbCr dont les étapes sont les suivantes :

1. Définir l’illuminant A de l’espace YCbCr


2. Diviser tous les pixels de l’image par 255 A= 5.481 -37.797 112
3. Reshaper l’image avec 3 colonnes. = 128.553 -74.203 -93.786
4. Effectuer le produit entre l’image produite et 24.966 112 -18.214
l’illuminant A
5. Ajouter à la composante couleur Y la valeur 16 et aux composantes Cb et Cr la valeur
128.
6. Reshaper l’image obtenue avec sa taille originale.

 Manipulations d’histogramme

 Rappel :

On calcule et visualise l’histogramme d’une image en niveaux de gris avec la commande imhist.
L’histogramme est un outil simple pour ajuster la dynamique d’une image, c’est-à-dire la distribution des
niveaux de gris. Comme on l’a vu en cours, on peut facilement modifier l’histogramme d’une image pour
Faculté des Sciences TP2 Traitement d’images Session d’automne : 2015/2016
Kenitra Master Pr. Y. El merabet

qu’il ressemble à une distribution donnée. En exploitant cet histogramme plusieurs opérations sont
possibles en utilisant les fonctions suivantes :

o imadjust : recadrage de la dynamique selon une correction gamma,


o histeq : ´égalisation et spécification d’histogrammes,
o adapthisteq : égalisation adaptative d’histogrammes,
o im2bw : binarisation d’une image.

 Travail demandé :

 Partie A : Exercice d’observation

Il s’agit ici d’utiliser la démonstration imadjdemo qui permet de manipuler interactivement


différentes transformations à base de l’histogramme : 1/ modification de LUT, 2/ ajustement de
contraste, 3/ modification d’histogramme, etc. Donc, nous allons voir comment se transforme une
image lorsque l’on manipule les différents paramètres tels que la luminosité, le contraste, et les
corrections gamma. La figure ci-dessous illustre l’interface graphique du demo imadjdemo.

 Choisir une image de votre choix (par exemple l’image «Pout »).
 Modifier la luminosité et interpréter les résultats.
 Modifier le contraste et la correction gamma et interpréter les résultats obtenus.
 Effectuer une égalisation d’histogramme. Apprécier l’effet sur l’image et sur l’histogramme.
Faculté des Sciences TP2 Traitement d’images Session d’automne : 2015/2016
Kenitra Master Pr. Y. El merabet

 Partie B : Jouer un exemple de programmation


L'objectif de cette partie est d'apprendre à construire sa propre fonction Matlab. Nous allons
essayer d'implémenter trois fonctions : 1/ Etirement de l’histogramme, 2/ Egalisation de
l’histogramme d’une image niveaux de gris et 3/ Egalisation de l’histogramme d’une image
couleur.

 Après avoir chargé l’image monochrome « circuit » de Matlab (load imdemos circuit ; I =
circuit;) dans votre répertoire de travail :

 Exécuter le programme ci-contre clear all; close all;


 Tester et comparer les résultats de ces deux [pixelCounts grayLevels] = imhist(I) ;
commandes imhist(I) et imhist(I,20) bar(grayLevels, pixelCounts);
 Que réalise le programme ci-contre : title('Histogram');
 Implémenter la fonction g=etire(f) qui retourne
l’image g, version étirée de l’image niveaux de gris
f. clear all; close all;
 Tester la commande histeq et comparer avec figure; imagesc(I); colormap(gray);
l’image originale axis image; colorbar; imcontrast();
 Implémenter la fonction g = egalise(f) qui retourne l’image g, version égalisée de l’image
niveaux de gris f.
 Peut-on généraliser l’égalisation d’histogramme au cas d’une image couleur ? Si oui rappeler
et implémenter la fonction correspondante g=egaliseC(f)

 Filtrage des images

La fonction de filtrage linéaire propre aux images proposé par Matlab est la fonction imfilter. Cet
opérateur correspond à une convolution réalisable également avec les fonctions conv2 ou filter2 mais qui
est spécifique aux images numériques et traite en particulier les bords de l’image. Le noyau du filtre est
une matrice de taille quelconque définie par l’utilisateur ou accessibles par la fonction fspecial. Des
filtrages non-linéaire peuvent être réalisés avec la fonction nlfilter ou ordfilt2.

Les fonctions imnoise et medfilt2 (ou plus généralement ordfilt2) N = ones(3)/9 ;


permettent respectivement d’ajouter du bruit à une image et de % noyau de convolution du filtre
réaliser le filtrage par un filtre médian. Le programme ci-contre g = imfilter(I,N) ;
définit et réalise un filtrage moyenneur de taille 3×3 sur l’image I.

 Travail demandé :

 Charger l’image ‘lena.bmp’ dans votre répertoire de travail.


 Appliquer un bruit de type ”poivre et sel” (bruit impulsionnel) sur l’image chargée.
 À partir d’un filtre moyenneur, effectuer le lissage de cette image en utilisant des filtres de tailles
3×3, 5×5 puis 7×7 afin d’étudier l’influence de la taille du noyau du filtre.
Faculté des Sciences TP2 Traitement d’images Session d’automne : 2015/2016
Kenitra Master Pr. Y. El merabet

 Appliquer un filtrage gaussian avec différentes tailles du noyau et valeurs de sigma pour étudier
l’impact de ces deux paramètres sur le résultat du filtrage. Noter le meilleur couple de paramètres
(taille, sigma) permettant l’obtention du meilleur résultat de filtrage. Comparer le résultat obtenu
par ce couple avec le meilleur résultat obtenu en utilisant un filtre moyenneur.
 Appliquer un filtre median de différentes tailles du noyau et comparer avec les meilleurs résultats
obtenus précédemment.
 Reprendre les mêmes questions pour un bruit gaussien.
 Devoir :
Le filtre gaussian est calculé à partir de la formule suivante :
 La fonction meshgrid définit un maillage régulier, i.e. les coordonnées des pixels dans une matrice
carrée.

Il est demandé de :

1. Implémenter la fonction Ngauss qui retourne le noyau gaussian dont la taille et la valeur
de sigma sont passées en entrée.
2. Implémenter le filtre Symetric Nearest Neighbourghood

Vous aimerez peut-être aussi