Académique Documents
Professionnel Documents
Culture Documents
But de la Manipulation :
Exercice 1:
1. Ecrivez un programme Matlab permettant d’afficher sur la même figure :
− L’image ‘printedtext.png’ ayant pour titre ‘Image_Initiale’.
− Cinq images résultantes de la binarisation de l’image initiale globalement, de façon
adaptative et en utilisant trois seuils fixes de votre choix (les seuils doivent être entre 0 et 1).
Chaque image doit avoir un titre par la transformation subie.
2. Commenter les résultats obtenus.
3. En utilisant la même image appliquer une binarisation adaptative en utilisant le paramètre
“ForegroundPolarity” pour indiquer que le premier plan est plus sombre que l'arrière-plan et en
spécifiant la sensitivité à 0.4. Que remarquez-vous ?
Fonction multithresh :
La fonction multithresh permet de calculer N seuils de séparation entre les régions de l’image en
utilisant la méthode d’Otsu.
Notant que imquantize attribue des valeurs aux deux intervalles de fin définis implicitement :
− A(k) ≤ levels(1)
− A(k) > niveaux(N)
Exercice 2:
1. Ecrivez un programme Matlab permettant d’afficher sur la même figure :
− L’image ‘foggysf2.jpg’ ayant pour titre ‘Image_Initiale’.
− L’image en niveaux de gris.
− L’histogramme de l’image.
− Le résultat de binarisation de l’image (un seul seuil de segmentation N=1).
2. Selon l’histogramme de l’image identifiez approximativement le nombre de seuils à choisir pour
segmenter l’image.
3. Utilisez ce nombre pour segmenter l’image et affichez le résultat dans une nouvelle fenêtre (vous
pouvez utiliser la fonction label2rgb pour convertir l’image segmentée en une image couleur).
Une bonne segmentation de l’image est généralement liée au bon choix du critère d’homogénéité et
des pixels germes de départ. Une mauvaise sélection des pixels de départ peut entrainer des
phénomènes de sous segmentation ou de sur segmentation.
Exercice 3 :
1. Ecrivez un programme Matlab permettant de lire l'image 'medtest.png' (voir le fichier Zip
region_growing) , de l’affecter à la variable I et de l’afficher.
2. Convertissez l’image en double précision.
3. Choisir comme point germe le pixel de coordonnées x=120 et y=260 ;
4. Segmentez l’image par application de l'algorithme de croissance de région autour du point germe
de coordonnées (x,y) et varier le critère d’homogénéité (écart du niveau d’intensité maximal)
avec les valeurs 0.1, 0.2 et 0.4 autour du germe germe [x y]. Noter les trois images J1, J2, et J3.
5. Affichez sur une même figure, les images I, J1, J2 et J3 (pour les images segmentées, on peut
utiliser la commande imshow (I+J))
6. Utilisez l’algorithme suivant pour segmenter l’image en quatre régions :
TP4 – Segmentation des images 3
TP Traitement d’images
a. Initialiser la matrice des étiquettes à zéros (on peut utiliser la fonction zeros
(Js=zeros(size(I)); ))
b. Initialiser la matrice des germes G avec les coordonnées des quatre points germes à utiliser.
c. Pour i de 1 à 4 (nombre de régions)
• Sélectionner un germe de la matrice des germes
• Segmenter la région J au tour du germe en utilisant un écart d’intensité de 0.2.
• Additionner la région segmentée à la matrice des étiquettes : Js=Js+J*i
d. Convertir la matrice des étiquettes en une image couleur par la fonction « label2rgb ».
e. Afficher le résultat final
Fonction kmeans
La fonction kmeans permet de classer (segmenter) une image I en k classes.
Exemples :
[mu,mask]=kmeans(ima,k) : segmente l’image ima en k cluster et retourne dans mask la
matrice de l’image résultante et dans mu un vecteur des moyennes de chaque classe
Exercice 4 :
1. Ecrivez un programme Matlab permettant d’afficher sur la même figure :
− L'image 'medtest.png' ayant comme titre ‘Image initiale.
− Le résultat de segmentation de cette image en choisissant comme nombre de cluster 2, 3 et 4.
2. Comparez le résultat obtenu par celui de la méthode de croissance des régions.
3. Refaites le même travail avec l’image ‘foggysf2.jpg’ et comparez le résultat obtenu avec celui de
l’exercice 2 (il faut transformer l’image en niveaux de gris avant la segmentation).
4. Essayez de segmenter une image RGB de votre choix et précisez le nombre de cluster final à
adopter.