Vous êtes sur la page 1sur 5

Compte Rendu Mini Projet Traitement des Images

Partie I : Détection d’une cellule à l’aide de la segmentation d’images

%Affichage de l'image de base


Im1=imread('cell.tif');
figure(1),imshow(Im1)

%Affichage de l'histogramme de
l'image de départ
figure(2),imhist(Im1) 1200

1000

800

600

400

200

0 50 100 150 200 250

Grâce à l’affichage de l’histogramme, nous pouvons choisir une valeur de seuil permettant de
binariser l’image afin de faire ressortir les objets du fond.

1
%réalisation seuillage en fonction
d'un niveau observé dans
l'histogramme
Im2 = im2bw(Im1,85/255);
Im3 = im2bw(Im1);
result=xor(~Im2,Im3);
figure(3),imshow(result)

On réalise une fermeture afin de fermer les objets.

%Réalisation d'une fermeture


FERM1=imdilate(result,strel('disk',6));
FERM2=imerode(FERM1,strel('disk',6));
figure(4), imshow(FERM2)

On vient faire une ouverture afin de supprimer les tâches blanches présentent sur le fond noir.

%Réalisation d'une Ouverture


ER=imerode(FERM2,strel('disk',1));
OUV=imdilate(ER,strel('disk',1));
figure(5), imshow(OUV)

On vient isoler la cellule qui nous intéresse en supprimant la cellule proche du bord.

2
%Nettoyage des bords de l'image
Im3 = imclearborder(OUV);
figure(6), imshow(Im3)

%récupération du périmètre
PERIMETRE = BWPERIM(Im3,8)
figure(7), imshow(PERIMETRE)

Ici on vient superposer l’image de départ avec le périmètre de la cellule voulue.

%Image finale
Im1(PERIMETRE)=255
figure(8), imshow(Im1)

3
Partie II : Segmentation de traits d’une image

On peut observer un bruit impulsionnel sur l’image, il faut donc appliquer un filtre non linéaire (Filtre
Médian)

%Lecture de l'image de base


Im1=imread('Image_MP2.jpg');
figure(1), imshow(Im1)

%Conversion de l'image en niveaux de


gris
Im2 = double(rgb2gray(Im1))/255;
figure(2), imshow(Im2)

%Application d'un filtre médian pour


enlever le bruit impulsionnel
MEDIAN=medfilt2(Im2);
figure(3),imshow(MEDIAN)

4
%Binarisation de l'image et
récupération du contour
[BW, S]=edge(MEDIAN,'canny');
Contour=edge(MEDIAN,'canny', 3*S,
2);
figure(4),imshow(Contour)

%Réalisation d'une fermeture


FERM1=imdilate(Contour,strel('diamon
d',10));
FERM2=imerode(FERM1,strel('diamond',
10));
figure(5), imshow(FERM2)

On ferme les trous qu’il nous reste dans l’image.

I=imfill(~FERM2,'holes');
figure(6), imshow(~I)