TP1 Traitement d'images Génie Logiciel avec Matlab
1. [TP1: REPRESENTATION DE L’IMAGE AVEC MATLAB] Traitement d’images GL4
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 1
Niveau : GL4
Responsable du cours: Sonia BOUZIDI
Enseignante du TP : Mariem ZAOUALI
TP1 : Représentation de l’image avec Matlab
Après ce TP, vous serez capable de :
Découvrir l'environnement de travail Matlab
Maîtriser les commandes de base de manipulation d'images de Matlab
Distinguer les différents types d'images
Savoir les propriétés intrinsèques de l'image
1. Installation de l’environnement de travail Matlab®
Pour ce TP, on vous fournira un setup de Matlab® sous Windows et Ubuntu. Les caractéristiques étant les
mêmes, vous avez la main de choisir le système d’exploitation qui vous convient.
Figure 1 Espace de travail de Matlab
L’espace de travail de Matlab comprend :
1. Le contenu de votre disque (système de fichiers). A l’aide de cette partie, vous pouvez accéder au
répertoire contenant votre script ou fonction.
1
2
4
3
5
6
2. [TP1: REPRESENTATION DE L’IMAGE AVEC MATLAB] Traitement d’images GL4
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 2
2. L’éditeur du code : où vous écrivez votre script ou fonction
3. Les variables créées suite à l’exécution de votre script. Vous pouvez visualiser leurs contenus en cliquant
dessus.
4. L’historique des commandes (Nom de scripts ou commande interne de Matlab) que vous avez lancé
5. La fenêtre des commandes : où vous lancez et écrivez les noms de vos scripts ou fonction pour les
exécuter
6. Zone d’affichage d’un petit résumé du fichier (images, scripts, fonctions) sélectionné.
2. Comment créer un script dans Matlab ?
Etape 1 : Créez votre répertoire de travail et incluez-le dans le chemin
Etape 2 : Cliquez sur New et choisissez Script.
3. [TP1: REPRESENTATION DE L’IMAGE AVEC MATLAB] Traitement d’images GL4
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 3
Etape 3 : Ecrivez votre script et appuyez sur Run
Exemple de script lancé :
3. Qu’est-ce qu’une image ?
Une image digitale/numérique peut être considérée comme étant une représentation discrète des données
possédant des informations spatiales et des informations couleurs (intensité).
Figure 2 La représentation de l'image discrète sous Matlab
6. [TP1: REPRESENTATION DE L’IMAGE AVEC MATLAB] Traitement d’images GL4
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 6
Certains Colormaps vous servent à faire apparaître des détails non perceptibles avec l'œil. En effet, l'œil humain
ne peut distinguer qu'approximativement 40 nuances de gris ! Cette manipulation s'avère fructueuse dans le
contexte des images médicales et astronomiques.
Manipulation 2 avec Matlab :
Ecrire un script qui permet de :
3. Appliquez un Colormap autre que grayscale sur une image
4. Définissez votre Colormap dans une fonction à part et revenir au script pour l'appliquer
A part les images de niveaux de gris, on trouve les images couleurs où la valeur d'intensité d'un pixel est calculée
à l'aide d'un vecteur de valeurs : Rouge, Vert, Bleu ou communément connu par RGB.
Figure 3 Image RGB, Image en niveau de gris
D'autres représentations de couleurs sont possibles : la HSV : Hue, Saturation et Variance où les couleurs sont
découplées de l'information chromatique de l'image.
Figure 4 les valeurs HSV d'une image couleur
7. [TP1: REPRESENTATION DE L’IMAGE AVEC MATLAB] Traitement d’images GL4
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 7
Généralement, RGB et HSV sont appelés des espaces de couleurs.
2.2.a RGB
Les images RGB ou couleur réelle sont des tableaux 3D : Il s'agit de 3 plans 2D, chacun représente un cannal de
couleur : Rouge, Vert, Bleu. Ainsi, la valeur numérique d'un pixel couleur dans une image naturelle est un
mélange de ces trois couleurs. On peut confondre cet espace à un cube couleur comme il est indiqué dans la
figure ci-dessous
Exemple 4 du code Matlab
path(path,’TP1_images/’) ; % Inclure le dossierTP1_images dans le chemin
D=imread('onion.png'); % Lire une image
Dred = D(:,:,1); % Extraction du premier canal - Rouge
Dgreen = D(:,:,2); % Extraction du deuxième canal - Vert
Dblue = D(:,:,3); % Extraction du premier canal - Bleu
subplot(2,2,1); imshow(D); axis image; % Affichage dans une fenêtre 2x2
subplot(2,2,2); imshow(Dred); title('red'); % Affichage avec un titre
subplot(2,2,3); imshow(Dgreen); title('green');
subplot(2,2,4); imshow(Dblue); title('blue');
Manipulation 3 avec Matlab :
1. Ecrivez un script pour convertir une image RGB à une image en niveau de gris selon la formule suivante :
8. [TP1: REPRESENTATION DE L’IMAGE AVEC MATLAB] Traitement d’images GL4
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 8
I_grey(x,y)=a I_couleur(x,y,rouge)+ b I_couleur(x,y,vert)+ c I_couleur(x,y,bleu) avec a=0,2989, b=0,5870 et c=
0,1140
2. Y-a-t-il une perte d'informations lorsqu’on passe de l'espace RGB aux niveaux de gris?
2.2.b HSV
La signification de l'espace de couleurs HSV est la suivante :
1. H (hue) : la longueur d'onde la plus dominante
2. S (saturation) : la « pureté » d'une couleur ( la quantité du blanc dans la couleur)
3. V (variance) la valeur de luminance – brightness
Manipulation 4 avec Matlab :
1. Décomposez une image RGB en un ensemble de composante de l'espace HSV, comme dans la figure 4 et
affichez-les. (indication : utilisez rgb2hsv)
4. Les résolutions de l'image
La netteté de l'image revient à une « bonne » résolution. Cette résolution dépend essentiellement de trois
facteurs :
La résolution spatiale : la dimension (Ligne,Colonne) d'une image définie le nombre de pixels utilisés
pour couvrir l'espace visuel capturé par une image. Exemple 1024x786, 640x480 etc
La résolution temporelle : Pour un système de capture continue comme la vidéo, la résolution
temporelle dépend du nombre de captures dans une période du temps donnée. L'unité de mesure
généralement est fps : frame per second. Par exemple : la diffusion TV compte 25 fps
9. [TP1: REPRESENTATION DE L’IMAGE AVEC MATLAB] Traitement d’images GL4
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 9
Bit-resolution : Celle-ci définie le nombre d'intensité (i.e. couleur) qui peut représenter un pixel dans une
image. Par exemple, les images binaires se codent juste sur 2 bits : 0 et 1 i.e. 2 couleurs. Les images de
niveaux de gris peuvent se coder sur 256 nuances de gris.
Manipulation 5 avec Matlab :
1. Bit-plane Slicing : Soit une image I : ‘onion.png’ de niveau de gris codé sur 8 bits (nuance de gris varient
de 0 à 255). La technique du Bit-plane slicing consiste décomposer l'image en un ensemble de plans,
dans notre cas, 8 plans. Afficher les 8 plans de l'image. Commenter ces plans de points de vue quantité
d'informations. Pour afficher tous les plans dans une seule figure, utiliser subplot
5. Les formats des images
6. Manipulations avancées
1. En utilisant les images 'cell.tif', accédez à l'emplacement (100,20) et appliquez ces deux opérations
I(i,j)=I(i,j)+25 et I(i,j)-25. Commentez l’effet obtenu.
Faites de même pour une image RGB, en agissant en premier lieu, sur les trois canaux puis en agissant sur un
seul à la fois. Affichez l'image après chaque manipulation.
10. [TP1: REPRESENTATION DE L’IMAGE AVEC MATLAB] Traitement d’images GL4
INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 10
2. Chargez une image quelconque, enregistrez là en format JPEG et en format PNG. Puis rechargez les images de
nouveaux dans deux variables Ijpeg et Ipng respectivement. On veut vérifier que les images n'ont pas changé.
Pour ce faire, utilisez imabsdiff. Affichez les images avec imagesc. L'image a-t-elle changé finalement ?