Académique Documents
Professionnel Documents
Culture Documents
Objectif
1. Savoir implémenter un filtre médian
2. Savoir implémenter un filtre moyenneur
3. Savoir gérer les bords d’une image
4. Savoir ajouter le bruit à une image
5. Savoir la différence entre le bruit gaussien et impulsionnel
6. Etc.
if Type==0
im_in1=padarray(im_in,n);
im_in2=padarray(im_in1',n);
im_out=im_in2';
else
im_out=im_in(n+1:end-n,n+1:end-n);
end;
end
1. Extraction de l’imagette
2. Conversion matrice => Tableau
3. Tri des valeurs du tableau
4. Calcul de l’Indice Médian
5. Extraction de la valeur médiane
6. Affectation de la valeur au pixel (i,j)
% Filtre Médian
im0=im_in(i-p:i+p, j-p:j+p); % 1. Extraction de l'imagette
V0=im0(:); % 2. Conversion matrice => Tableau
V1=sort(V0); % 3. Tri des valeurs du tableau
Im=round(n*n/2); % 4.1 Indice Médian
Med=V1(Im); % 4.2 Extraction de la valeur médiane
im_med(i,j)=Med; % 5. Affectation de la valeur au pixel (i,j)
% Filtre Max/Min
im_maxMin(i,j)=max(V0);
%im_maxMin(i,j)=min(V0);
% Filtre Moyenneur
im_mean(i,j)=mean(V0);
end;
end;
Programme Matlab
clear all; close all; clc;
%% Image Originale
% im_rgb= imread('onion.png');
% im_rgb= imread('peppers.png');
% im_rgb= imread('cameraman.tif');
% im_rgb= imread('kids.tif');
% im_rgb= imread('mandi.tif');
% im_rgb= imread('cell.tif');
% im_rgb= imread('mri.tif');
im_rgb= imread('spine.tif');
% im_rgb= imread('moon.tif');
im_1=im2double(im_rgb);
[M,N,P]=size(im_1);
if P==3
im_in_0=rgb2gray(im_1);
else
im_in_0=im_1;
end;
% Normalisation
im_in_0=im_in_0/max(im_in_0(:));
%% Ajout du bruit
d=0.20; im_noise=imnoise(im_in_0,'salt & pepper',d);
% v=0.2; im_noise=imnoise(im_in_0,'gaussian',v);
% Filtre Médian
im0=im_in(i-p:i+p, j-p:j+p); % 1. Extraction de l'imagette
V0=im0(:); % 2. Conversion matrice => Tableau
V1=sort(V0); % 3. Tri des valeurs du tableau
Im=round(n*n/2); % 4.1 Indice Médian
Med=V1(Im); % 4.2 Extraction de la valeur médiane
% Filtre Max/Min
im_maxMin(i,j)=max(V0);
%im_maxMin(i,j)=min(V0);
% Filtre Moyenneur
im_mean(i,j)=mean(V0);
end;
end;
%% Affichage
figure(1);
% subplot(221); imshow(im_noise);title('Image Bruitée','fontsize',16);
% subplot(222); imshow(im_maxMin); title('Filtre Max/Min','fontsize',16);
% subplot(223); imshow(im_mean); title('Filtre Moyenneur','fontsize',16);
% subplot(224); imshow(im_med); title('Filte Médian','fontsize',16);