Académique Documents
Professionnel Documents
Culture Documents
L’objectif de ce TP est de prendre en main les outils de traitement d’images les plus classiques
à l’aide du logiciel Matlab. Aussi, de prendre en main les outils d'amélioration du contraste par
manipulation de l'histogramme.
MatLab est un logiciel pour effectuer des calculs numériques. Il a été conçu initialement
pour faciliter le traitement des matrices mais il est maintenant utilisé dans tous les domaines
des sciences qui nécessitent de faire des calculs. Il permet de réaliser du calcul numérique et de
tracer des graphiques pour visualiser et analyser les données. Il dispose d’un langage et d’un
environnement de programmation interactifs ainsi que d’outils pour concevoir des interfaces
utilisateur graphiques.
II. Traitement d'images
Matlab est associé à des boites à outils appelé ToolBox permettant d’accéder à des
fonctions spécifiques à un domaine d’application comme le traitement d’images par exemple.
Les TPs de traitement d’images réalisés avec Matlab nécessitent ainsi la toolbox « Image
Processing ». Les fonctions de ces toolbox peuvent être listées en tapant la fonction help
images dans l’éditeur de commande de Matlab. Pour obtenir un descriptif détaillé de ces
fonctions, utiliser l’aide contextuelle en tapant la fonction help suivi du nom de la
fonction.Vous pouvez découvrir les démonstrations associées à la toolbox « Image Processing
» en tapant la fonction demos (ou directement le nom de la démonstration à découvrir).
Une image sous MATLAB est représentée par une matrice. L’élément de base appelé pixel
représente simultanément un point de l’image et un élément de la matrice. Par exemple : soit
une image nommée Im, Im(5,10) est la valeur du pixel qui se trouve à la ligne 5 et la colonne
10 de l’image Im.
MATLAB utilise quatre types d’images : Images RVB (Rouge Vert Bleu), Images indexées,
Images d’intensité (Niveaux de gris), Images binaires.
Avec MATLAB, une couleur peut être exprimée soit en spécifiant explicitement les trois
valeurs R, V et B, soit par l'intermédiaire d'un indice dans une table contenant elle-même des
couleurs RVB. Dans le premier cas, on parle de couleurs vraies (true color en anglais) alors que
dans le second, on parle de couleur indexée (indexed color en anglais).
Page 1/8
Images RVB
La couleur RGB du pixel de l’image est précisée par trois valeurs correspondantes aux trois
composantes rouge, verte et bleue de cet espace colorimétrique. Les valeurs prises par ces
triplets dépendent de la classe utilisée par la variable pour les stocker.
Images indexées
Une image indexée est composée d’une carte de couleur (colormap) et d’une matrice de
l’image. Chaque pixel de l’image est un pointeur sur un élément de la carte de couleur qui
représente sa couleur RVB.
Une palette de couleurs (palette en anglais ou encore colormap sous MATLAB) est un tableau
numérique de taille Mx3 où chaque ligne contient les valeurs du triplet RGB d'une couleur
donnée. MATLAB possède 17 palettes de couleurs prédéfinies. Pour utiliser une des palettes
prédéfinies, on utilise la fonction colormap comme ceci par exemple: colormap winter
Soit une image contenant quatre pixels de couleurs respectives rouge, orange, jaune et bleu et
dont les valeurs sont indexées sur la palette jet avec 64 couleurs.
Xdouble = [8 40 48 56];
colormap(jet(64))
image(Xdouble)
MATLAB sauvegarde une image d’intensité sous forme d’une matrice unique appelé matrice
d’intensité. Elle contient des valeurs allant de 0.0 à 1.0. Chaque élément de la matrice représente
un pixel de l’image. Sa valeur indique un niveau de gris ou une intensité. L’intensité 0.0
représente le noir et 1.0 représente le blanc.
Une image binaire contient uniquement deux niveaux de gris : 0 (noir) et 1 (blanc).
Construire une image binaire de dimension 64x64 pixels formée par un cadre noir de
largeur un pixel et d’un rectangle noir au centre de l’image de dimension 20x15 pixels.
Page 2/8
Il est possible de changer de type d’image en utilisant les fonctions suivantes :
• ind2gray : indexé vers intensité,
• ind2rgb : indexé vers RGB,
• rgb2ind : RGB vers indexé,
• rgb2gray : RGB vers intensité,
• im2bw : intensité, indexé, RGB vers binaire : c’est l’opérateur de binarisation.
Une image binaire peut être également obtenue en utilisant un seuillage.
Page 3/8
Images au format TIFF
Page 4/8
Images au format PNG
Page 5/8
C. Opérations sur les images
Opérer les fonctions logiques and, or, xor, not sur ces images et afficher le résultat
sur une même figure
Page 6/8
D. Histogramme et Binarisation
L’histogramme d’une image est la distribution des intensités dans cette image. La fonction
imhist(I,n) calcule l’histogramme de l’image I en utilisant n niveaux de gris. Elle compte le
nombre de pixels par niveau de gris et l’affiche.
Profil d’intensité
La fonction improfile calcule et affiche l’intensité de l’image le long d’un ou de
plusieurs segments. Par exemple :
Egalisation de l’histogramme
Charger l’image forest en mémoire, en utilisant le code suivant :
%charger l'image forest en mémoire
[X,map]=imread('forest.tif');
Pour convertir une image indexée en une image d'intensité, on utilise la commande suivante :
Page 7/8
Charger une image en niveaux de gris, de votre choix, nommée I1.
Afficher son histogramme. Interpréter.
Eclaircir l'image I1 et l'enregistrer dans une matrice I2.
Assombrir l'image I1 et l'enregistrer dans une matrice I3.
Améliorer le contraste de chacune de ces images par l'opération d'égalisation de
l'histogramme. Afficher le résultat sous la forme:
I1 I2 I3
E1 E2 E3
H1eq H2eq H3eq
Interpréter.
Seuillage et binarisation
Le seuillage d’une image consiste à considérer les pixels de l’image dont la valeur est supérieure
(ou inférieure) à un seuil. Une image binaire peut être obtenue par seuillage en remplaçant tout
pixel dont la valeur est supérieure (ou inférieure) au seuil.
Pour choisir le seuil, l’histogramme peut être utilisé.
Exemple:
Load trees ;
I=ind2gray(X,map) ;
BW=(I>0.5) ;
Subplot(1,2,1), imshow(X,map)
Subplot(1,2,2), subimage(BW)
Axis off
Page 8/8