Vous êtes sur la page 1sur 2

Module : Traitement d’images

TP Traitement d’images sous Matlab NIVEAU : LGLSI 2

TP3: Filtrage spatial

Exercice 1 : Filtre moyenneur et filtre Gaussien

1. Copier le code ci-dessous dans un script Matlab.


2. Que fait la fonction Matlab Imnoise() ?
3. Afficher la variable h. Que représente h ?
4. Changer les coefficients et la taille de la matrice h (tester 5x5 et 7x7) et comparer les
images obtenues à chaque fois. NB : la somme des coefficients de h doit être égale à 1
5. Modifier le code ci-dessous afin de :
a. Remplacer ones() par la fonction Matlab fspecial() pour générer h (voir doc
fspecial)
b. Remplacer conv2() par la fonction filter2() pour générer l’image T (voir doc
filter2).
6. Modifier les paramètres de la fonction fspecial() pour générer le noyau d’un filtre gaussien
de taille 15 x 15 et d'écart type 1. Appliquer ce filtre à l’image bruitée J et comparer avec
le résultat obtenu avec le filtre de la question précédente.
7. Modifier la valeur de l’écart type du filtre Gaussien (tester 2 et 1.5 et 0.5) et comparer les
résultats obtenus.

close all;
clear;

I = imread('coins.png');
J = imnoise(I,'salt & pepper',0.03);

h = ones(3, 3) / 9;
T = uint8(conv2(J, h, 'same'));

figure(1), colormap('gray');
subplot(1,3,1),imshow(I);
subplot(1,3,2),imshow(J);
subplot(1,3,3),imshow(T);

1/2
Module : Traitement d’images
TP Traitement d’images sous Matlab NIVEAU : LGLSI 2

Exercice 2 : Filtre pass-haut Gradient


1. Copier le code ci-dessous.
2. Que fait ce code ? Que représente chacune des matrices suivantes : Gx, Gy et Gmag.
3. Remplacer, dans le code ci-dessous, les deux boucles for par les deux fonctions Matlab
suivantes :
a. La fonction Matlab imgradientxy() pour générer Gx et Gy avec le noyau adéquat
(voir doc Imgradientxy )
b. La fonction imgradient() pour générer Gmag.
4. Essayer d’autres Gradient comme le Gradient de ‘Sobel’ ‘roberts’ ‘prewitt et comparer les
résultats.

close all;
clear all;

I = double(imread('coins.png'));

[L,C] = size(I);

for i=2:L-1
for j=2:C-1
x=((0.5*I(i,j+1)-0.5*I(i,j-1)));
y=((0.5*I(i+1,j)-0.5*I(i-1,j)));
Gx(i,j)=x;
Gy(i,j)=y;
Gmag(i,j)=sqrt(x.^2+y.^2);
end
end

figure(1), colormap('gray'),
subplot(2,2,1),imshow(uint8(I)),title('Image originale');
subplot(2,2,2),imagesc(Gmag),title('Module du gradient');colorbar
subplot(2,2,3),imagesc(Gx),title('Gradient en X');colorbar
subplot(2,2,4), imagesc(Gy),title('Gradient en Y ');colorbar

2/2

Vous aimerez peut-être aussi