10
[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

TP1 Traitement d'images Génie Logiciel avec Matlab

Embed Size (px)

Citation preview

Page 1: TP1 Traitement d'images Génie Logiciel avec Matlab

[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

Page 2: TP1 Traitement d'images Génie Logiciel avec Matlab

[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.

Page 3: TP1 Traitement d'images Génie Logiciel avec Matlab

[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

Page 4: TP1 Traitement d'images Génie Logiciel avec Matlab

[TP1: REPRESENTATION DE L’IMAGE AVEC MATLAB] Traitement d’images GL4

INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 4

2.1 L'information spatiale de l'image

Une image 2D discrète, numérique I(m,n) représente une réponse à un ensemble de capteurs à

différentes positions (m=1,2,3...M)(n=1,2,3….N) dans un repère cartésien 2D. Cette image est dérivée d'un signal

continu I(x,y) suite à une opération de numérisation.

En Matlab ©, une image I(m,n) est la réponse d'un pixel situé au mème ligne et nème colonne commençant

du haut gauche de l'origine de l'image.

Exemple 1 du code Matlab path(path,’TP1_images/’) ; % Inclure le dossierTP1_images dans le chemin imfinfo('cameraman.tif') ; % Retourne les caractéristiques de l’image « cameraman » comme le type de couleur etc.. I1=imread('cameraman.tif'); %Lire l’image et retourner une matrice I1 imwrite(I1,'cameraman.jpg','jpg'); % Enregistrer la matrice I1 sous le format JPEG imfinfo('cameraman.jpg') % Retourne les caractéristiques de l’image « cameraman ». Remarquez la différence entre les deux formats

Dans le cadre de ce TP, nous considérons l'image comme étant un signal discret. L'analyse des images discrètes

conduit à une formulation algébrique linéaire. On peut traiter les images aussi dans le domaine continu.

Théoriquement ceci est possible et nous permet d'appliquer les intégrations et le calcul différentiel pour

comprendre les propriétés de l'image.

Nous manipulons dans ce TP, les images discrètes dans un repère 2D, mais certaines applications de traitement

d'images, étendent ce repère pour représenter d'autres composantes à part les composantes spatiales (x,y)

élémentaires. Par exemple dans le domaine de l'imagerie médicale, on peut représenter des organes : par

exemple un cœur qui bat : 2D pour les propriétés spatiales (x,y) et 1D pour la notion du temps. On peut même

aller à 4D : où les caractéristiques spatiales sont représentées sur 3 dimensions et la 4ème D est pour le temps

Manipulation 1 avec Matlab :

Ecrire un script qui permet de :

1. Lisez une image avec Matlab © et l'afficher

2. Parcourez la variable dans laquelle vous avez enregistré votre image avec la structure itérative for.

% Un exemple de l’usage de la boucle for

for x =1 : size(I1,1) % I1 est une matrice, size(I1,1) veut dire : retourner le nombre de lignes de la matrice

for y=1 :size(I1,2) % I1 est une matrice, size(I1,2) veut dire : retourner le nombre de colonnes de la matrice

I1(x,y)= 1 ; %Affectation d’une valeur dans une cellule de l’image

end

Page 5: TP1 Traitement d'images Génie Logiciel avec Matlab

[TP1: REPRESENTATION DE L’IMAGE AVEC MATLAB] Traitement d’images GL4

INSTITUT NATIONAL DES SCIENCES APPLIQUEES ET DE TECHNOLOGIE - TUNISIE 5

end

Extrayez 50% de l'image et l'afficher sur votre écran.

2.2 Les couleurs dans l'image

L'image contient un ou plusieurs canaux – channels- représentant la couleur ou on dit aussi la valeur de

l'intensité d'un pixel. Chaque pixel contient une seule valeur numérique qui représente la valeur du signal à ce

niveau de l'image.

En Matlab ©, l'affichage de l'image se fait à travers un Colormap. Ce dernier associe à chaque nuance de couleur

une valeur numérique pour donner une représentation visuelle de l'image.

Exemple 2 du code Matlab path(path,’TP1_images/’) ; % Inclure le dossierTP1_images dans le chemin A=imread('cameraman.tif'); % Lire l’image cameraman imshow(A); % Afficher une image imagesc(A); % Une autre method d’affichage

axis image; % Repère de l’image

axis off; % Désactiver les labels sur les axes

colormap(gray); % Afficher l’image en niveaux de gris

Exemple 3 du code Matlab path(path,’TP1_images/’) ; % Inclure le dossierTP1_images dans le chemin B=imread('cell.tif'); % Lire l’image

C=imread('spine.tif'); % Lire l’image

D=imread('onion.png'); % Lire l’image

subplot(3,1,1); % Créer une zone d’affichage de taille 3x1 (3 lignes, une colonne)

imagesc(B); axis image; % Affichage de la première image en niveaux de gris

axis off; colormap(gray);

subplot(3,1,2); imagesc(C); axis image; % Affichage de la deuxième image en appliquant un autre colormap

axis off; colormap(jet);

subplot(3,1,3); imshow(D); % Affichage de la troisième image sans appliquer un colormap

Le Colormap le plus courant est le « grayscale »- niveaux de gris, qui associe toutes les nuances du gris : du noir

(valeur 0 : absence de lumière) jusqu'au blanc (valeur maximale qui peut être 2 exposant n, avec n est un entier

naturel).

Page 6: TP1 Traitement d'images Génie Logiciel avec Matlab

[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

Page 7: TP1 Traitement d'images Génie Logiciel avec Matlab

[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 :

Page 8: TP1 Traitement d'images Génie Logiciel avec Matlab

[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

Page 9: TP1 Traitement d'images Génie Logiciel avec Matlab

[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.

Page 10: TP1 Traitement d'images Génie Logiciel avec Matlab

[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 ?