SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
[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: 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.
[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
[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
[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).
[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
[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 :
[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
[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.
[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 ?

Contenu connexe

Tendances

Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning Niji
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationMohamed Amine Mahmoudi
 
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Jean Rohmer
 
Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)Soumia Elyakote HERMA
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Ahmed Makni
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données IIRiadh Bouslimi
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 
Théorie de graphe
Théorie de grapheThéorie de graphe
Théorie de grapheTECOS
 
classification des images couleurs par un réseau de neurone quaternionique ré...
classification des images couleurs par un réseau de neurone quaternionique ré...classification des images couleurs par un réseau de neurone quaternionique ré...
classification des images couleurs par un réseau de neurone quaternionique ré...Amal Targhi
 
Presentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesPresentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesTahani RIAHI
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionLilia Sfaxi
 
Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étudeDonia Hammami
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 

Tendances (20)

Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning
 
Filtrage image
Filtrage imageFiltrage image
Filtrage image
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
 
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
 
Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)Exposé réseaux des neurones (NN) - (RN)
Exposé réseaux des neurones (NN) - (RN)
 
Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...Pfe conception et réalisation d'une application de gestion des processus d'ac...
Pfe conception et réalisation d'une application de gestion des processus d'ac...
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données II
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Théorie de graphe
Théorie de grapheThéorie de graphe
Théorie de graphe
 
classification des images couleurs par un réseau de neurone quaternionique ré...
classification des images couleurs par un réseau de neurone quaternionique ré...classification des images couleurs par un réseau de neurone quaternionique ré...
classification des images couleurs par un réseau de neurone quaternionique ré...
 
Presentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesPresentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'Etudes
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
QCM Sécurité Informatique
QCM Sécurité InformatiqueQCM Sécurité Informatique
QCM Sécurité Informatique
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat Transition
 
Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étude
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 

Similaire à TP1 Traitement d'images Génie Logiciel avec Matlab

cours-gratuit.com--CoursMatlab-id4508 (1).pdf
cours-gratuit.com--CoursMatlab-id4508 (1).pdfcours-gratuit.com--CoursMatlab-id4508 (1).pdf
cours-gratuit.com--CoursMatlab-id4508 (1).pdfNarjiss Hach
 
Td2 decrypted
Td2 decryptedTd2 decrypted
Td2 decryptedMed Mmed
 
CoursImageProcessing1.pdf
CoursImageProcessing1.pdfCoursImageProcessing1.pdf
CoursImageProcessing1.pdfHouBou3
 
Ebook matlab
Ebook matlabEbook matlab
Ebook matlabN NASRI
 
Bases de données image : structuration de l'espace des descripteurs et recher...
Bases de données image : structuration de l'espace des descripteurs et recher...Bases de données image : structuration de l'espace des descripteurs et recher...
Bases de données image : structuration de l'espace des descripteurs et recher...Guillaume MOCQUET
 
Programmation graphique avancée en java
Programmation graphique avancée en javaProgrammation graphique avancée en java
Programmation graphique avancée en javaEzéquiel Tsagué
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetAmine Chkr
 
TP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage MachineTP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage MachineBoubaker KHMILI
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfTarakBenslimane
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfTarakBenslimane
 
Extrait Pour la science n°538 - Quand une photo sort de l’ombre
Extrait Pour la science n°538 - Quand une photo sort de l’ombreExtrait Pour la science n°538 - Quand une photo sort de l’ombre
Extrait Pour la science n°538 - Quand une photo sort de l’ombreInria
 
Rapport - Création d'une image panoramique
Rapport - Création d'une image panoramiqueRapport - Création d'une image panoramique
Rapport - Création d'une image panoramiqueAhmed EL ATARI
 
Cours_D3SI_S5_Python for DS_MatPlotLib.pdf
Cours_D3SI_S5_Python for DS_MatPlotLib.pdfCours_D3SI_S5_Python for DS_MatPlotLib.pdf
Cours_D3SI_S5_Python for DS_MatPlotLib.pdfsaid350040
 
Quantification histograme
Quantification histogrameQuantification histograme
Quantification histogrameGata Hipogata
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docxkhalil Ismail
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 

Similaire à TP1 Traitement d'images Génie Logiciel avec Matlab (20)

cours-gratuit.com--CoursMatlab-id4508 (1).pdf
cours-gratuit.com--CoursMatlab-id4508 (1).pdfcours-gratuit.com--CoursMatlab-id4508 (1).pdf
cours-gratuit.com--CoursMatlab-id4508 (1).pdf
 
Td2 decrypted
Td2 decryptedTd2 decrypted
Td2 decrypted
 
CoursImageProcessing1.pdf
CoursImageProcessing1.pdfCoursImageProcessing1.pdf
CoursImageProcessing1.pdf
 
Ebook matlab
Ebook matlabEbook matlab
Ebook matlab
 
Bases de données image : structuration de l'espace des descripteurs et recher...
Bases de données image : structuration de l'espace des descripteurs et recher...Bases de données image : structuration de l'espace des descripteurs et recher...
Bases de données image : structuration de l'espace des descripteurs et recher...
 
Programmation graphique avancée en java
Programmation graphique avancée en javaProgrammation graphique avancée en java
Programmation graphique avancée en java
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception Objet
 
Uml
UmlUml
Uml
 
TP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage MachineTP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage Machine
 
Compression JPEG
Compression JPEGCompression JPEG
Compression JPEG
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdf
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdf
 
Extrait Pour la science n°538 - Quand une photo sort de l’ombre
Extrait Pour la science n°538 - Quand une photo sort de l’ombreExtrait Pour la science n°538 - Quand une photo sort de l’ombre
Extrait Pour la science n°538 - Quand une photo sort de l’ombre
 
Rapport - Création d'une image panoramique
Rapport - Création d'une image panoramiqueRapport - Création d'une image panoramique
Rapport - Création d'une image panoramique
 
Cours_D3SI_S5_Python for DS_MatPlotLib.pdf
Cours_D3SI_S5_Python for DS_MatPlotLib.pdfCours_D3SI_S5_Python for DS_MatPlotLib.pdf
Cours_D3SI_S5_Python for DS_MatPlotLib.pdf
 
Formation ps
Formation psFormation ps
Formation ps
 
Rapportfinal2x
Rapportfinal2xRapportfinal2x
Rapportfinal2x
 
Quantification histograme
Quantification histogrameQuantification histograme
Quantification histograme
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docx
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 

Plus de Mariem ZAOUALI

Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonMariem ZAOUALI
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Mariem ZAOUALI
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numériqueMariem ZAOUALI
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en pythonMariem ZAOUALI
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en pythonMariem ZAOUALI
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en pythonMariem ZAOUALI
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à pythonMariem ZAOUALI
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliquesMariem ZAOUALI
 
Cours 4 intergiciels orientes messages jms
Cours 4 intergiciels orientes messages  jmsCours 4 intergiciels orientes messages  jms
Cours 4 intergiciels orientes messages jmsMariem ZAOUALI
 
Cours 2 les architectures reparties
Cours 2 les architectures repartiesCours 2 les architectures reparties
Cours 2 les architectures repartiesMariem ZAOUALI
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaMariem ZAOUALI
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de baseMariem ZAOUALI
 
Comment retrouver la forme récursive
Comment retrouver la forme récursiveComment retrouver la forme récursive
Comment retrouver la forme récursiveMariem ZAOUALI
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieMariem ZAOUALI
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieMariem ZAOUALI
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Mariem ZAOUALI
 

Plus de Mariem ZAOUALI (20)

Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en python
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en python
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliques
 
TP2 RMI
TP2 RMITP2 RMI
TP2 RMI
 
Cours 4 intergiciels orientes messages jms
Cours 4 intergiciels orientes messages  jmsCours 4 intergiciels orientes messages  jms
Cours 4 intergiciels orientes messages jms
 
Cours 2 les architectures reparties
Cours 2 les architectures repartiesCours 2 les architectures reparties
Cours 2 les architectures reparties
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corba
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de base
 
Comment retrouver la forme récursive
Comment retrouver la forme récursiveComment retrouver la forme récursive
Comment retrouver la forme récursive
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / Tunisie
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / Tunisie
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / Tunisie
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / Tunisie
 
Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia
 

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
  • 4. [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
  • 5. [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).
  • 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 ?