Vous êtes sur la page 1sur 4

TP vision robotique ISETKr 2014-2015

Filtrage passe bas et débruitage de l’image

- Lecture et affichage de l’image :


>> A=imread(‘peppers.png');
>> figure; image(A); axis image; axis off
- Génération d’un bruit additif :
>> B1=uint8(double(A)+25*randn(size(A)));
>> figure; image(B1); axis image; axis off
- Génération d’un bruit multiplicatif :
>> B2=uint8(double(A)+.6*double(A).*rand(size(A)));
>> figure; image(B2); axis image; axis off
- Génération d’un bruit impulsionnel:
>> B=A; x=rand(size(A)); B(find(x<.05))=0; B(find(x>.8 & x<.5))=1; B3=uint8(B);
>> figure; image(B3); axis image; axis off
- Filtrage de l’image bruitée :
- filtrage de la moyenne par une fenêtre d’analyse :
>> M=1/9*[1 1 1; 1 1 1; 1 1 1];
- filtre de la moyenne appliqué sur le bruit B1 :
>> F1(:,:,1)=uint8(conv2(M,B1(:,:,1)));
>> F1(:,:,2)=uint8(conv2(M,B1(:,:,2)));
>> F1(:,:,3)=uint8(conv2(M,B1(:,:,3)));
>> figure; image(F1); axis image; axis off
- filtre de la moyenne appliqué sur le bruit B2 :
>> F2(:,:,1)=uint8(conv2(M,B2(:,:,1)));
>> F2(:,:,2)=uint8(conv2(M,B2(:,:,2)));
>> F2(:,:,3)=uint8(conv2(M,B2(:,:,3)));
>> figure; image(F2); axis image; axis off
- filtre median appliqué sur le bruit B3:
>> F3=B3; [m,n,p]=size(B3); for x=2:m-1, for y=2:n-1, F3(x,y)=median(double([B3(x-1,y-1:y+1)
B3(x,y-1:y+1) B3(x+1,y-1:y+1)])); end, end, F3=uint8(F3);
>> figure; image(F3); axis image; axis off
- filtrage de Gabor:
>> gabor=[-.38 1 1.85 1 -.38; 1 -2.61 -4.85 -2.61 1; 1.85 -4.85 16 -4.85 1.85; 1 -2.61 -4.85 -2.61 1; -
.38 1 1.85 1 -.38]
>> F9(:,:,1)=conv2(gabor,A(:,:,1));
>> F9(:,:,2)=conv2(gabor,A(:,:,2));
>> F9(:,:,3)=conv2(gabor,A(:,:,3));
>> figure; image(uint8(F9)); axis image; axis off

B. Seddik Page 1 sur 4


TP vision robotique ISETKr 2014-2015

Filtrage Morphologique de l’image


- filtre morphologique avec élément structurant : carré
- dilatation:
>> [m,n,p]=size(B3); for x=2:m-1, for y=2:n-1, F5(x,y)=max([B3(x-1,y-1:y+1) B3(x,y-1:y+1)
B3(x+1,y-1:y+1)]); end, end,
>> figure; image(F5); axis image; axis off
- erosion:
>> [m,n,p]=size(B3); for x=2:m-1, for y=2:n-1, F6(x,y)=min([B3(x-1,y-1:y+1) B3(x,y-1:y+1)
B3(x+1,y-1:y+1)]); end, end,
>> figure; image(F6); axis image; axis off
- faites une ouverture= erosion puis une dilatation: dilatation(erosion(I))
- faites une fermeture= dilatation puis erosion: erosin(dilatation(I))

Avec la boite à outils « image processing » de MATLAB


- Lecture et affichage d’une autre image :
>> A2=imread('cameraman.tif'); figure; imshow(A2)
- Pour introduire un bruit additif à l’image :
>> B1=imnoise(A2,'gaussian'); figure; imshow(B1)
- Pour filtrer par un moyenneur le bruit de l’image :

1 1 1
M = 1 1 1
1
9
1 1 1
>> M=1/9*[1 1 1; 1 1 1; 1 1 1];
>> F11=uint8(filter2(M,B1)); figure; imshow(F11)
- Filtrez l’image affectée par un bruit additif par un filtre de la moyenne uniforme, dont le noyau
est :
1 1 1 1 1
1 1 1 1 1
1 
M1 = 1 1 1 1 1
25  
1 1 1 1 1
1 1 1 1 1
>> FM1=uint8(filter2(M1,B1)); figure; imshow(FM1)
- Filtrez l’image affectée par un bruit additif par un filtre de la moyenne circulaire, dont le noyau
est :

B. Seddik Page 2 sur 4


TP vision robotique ISETKr 2014-2015

0 1 1 1 0
1 1 1 1 1
1 
M2 = 1 1 1 1 1
21  
1 1 1 1 1
0 1 1 1 0
>> FM2=uint8(filter2(M2,B1)); figure; imshow(FM2)
- Filtrez l’image affectée par un bruit additif par un filtre de la moyenne conique, dont le noyau est :
0 0 1 0 0
0 2 2 2 0
1 
M3 = 1 2 5 2 1
25  
0 2 2 2 0
0 0 1 0 0
>> FM3=uint8(filter2(M3,B1)); figure; imshow(FM3)
- Filtrez l’image affectée par un bruit additif par un filtre de la moyenne pyramidale, dont le noyau
est :
1 2 3 2 1
2 4 6 4 2
1 
M 4 = 3 6 9 6 3
81  
2 4 6 4 2
1 2 3 2 1
>> FM4=uint8(filter2(M4,B1)); figure; imshow(FM4)
- Comparez les résultats des filtrages et remplir le tableau par MAUVAIS, MOYEN ou BIEN en
fonction de l’effet du filtre sur le bruit :
Filtre de la moyenne Bruit additif
uniforme
circulaire
conique
pyramidale
- Pour introduire un bruit multiplicatif à l’image :
>> B2=imnoise(A2,'speckle'); figure; imshow(B2)
- Pour filtrer par un Wiener le bruit de l’image :
>> F22=wiener2(B2); figure; imshow(F22)
- Pour introduire un bruit impulsionnel à l’image :
>> B3=imnoise(A2,'salt & pepper'); figure; imshow(B3)
- Pour filtrer par un median le bruit de l’image :
>> F33=medfilt2(B3); figure; imshow(F33)
- Appliquez un filtre de la moyenne sur l’image affectée par un bruit multiplicatif (B2) :

B. Seddik Page 3 sur 4


TP vision robotique ISETKr 2014-2015

>> F12=uint8(filter2(M,B2)); figure; imshow(F12)


- Appliquez un filtre de la moyenne sur l’image affectée par un bruit impulsionnel (B3) :
>> F13=uint8(filter2(M,B3)); figure; imshow(F13)
- Appliquez le filtre de Wiener sur l’image affectée par un bruit additif (B1) :
>> F21=wiener2(B1); figure; imshow(F21)
- Appliquez le filtre de Wiener sur l’image affectée par un bruit impulsionnel (B3) :
>> F23=wiener2(B3); figure; imshow(F23)
- Appliquez un filtre médian sur l’image affectée par un bruit additif (B1) :
>> F31=medfilt2(B1); figure; imshow(F31)
- Appliquez un filtre médian sur l’image affectée par un bruit multiplicatif (B2) :
>> F32=medfilt2(B2); figure; imshow(F32)
- Comparez les résultats des filtrages ; remplir le tableau par MAUVAIS, MOYEN ou BIEN en
fonction de l’effet du filtre sur le bruit :
Bruit additif Bruit multiplicatif Bruit impulsionnel
Filter de la moyenne
Filter de Wiener
Filter median

- Appliquez sur l’image affectée par un bruit additif (B1) un filtre morphologique érosion, dont
l’élément structurant est carré de rayon 1 :
>> SE=[1 1 1;1 1 1;1 1 1];
>> F41=imerode(B1,SE); figure; imshow(F41)
- Appliquez sur l’image affectée par un bruit additif (B1) un filtre morphologique dilation, dont
l’élément structurant est carré de rayon 1 :
>> SE=[1 1 1;1 1 1;1 1 1];
>> F42=imdilate(B1,SE); figure; imshow(F42)
- Appliquez sur l’image affectée par un bruit additif (B1) un filtre morphologique ouverture, dont
l’élément structurant est carré de rayon 1 :
>> SE=[1 1 1;1 1 1;1 1 1];
>> F43=imopen(B1,SE); figure; imshow(F43)
- Appliquez sur l’image affectée par un bruit additif (B1) un filtre morphologique fermeture, dont
l’élément structurant est carré de rayon 1 :
>> SE=[1 1 1;1 1 1;1 1 1];
>> F44=imclose(B1,SE); figure; imshow(F44)
- Appliquez sur l’image affectée par un bruit impulsionnel (B3) les mêmes filtres morphologiques
que précédents : F51, F52, F53, F54
- Commentez les résultats

B. Seddik Page 4 sur 4

Vous aimerez peut-être aussi