Téléchargement
illégal
Posez votre question Signaler

Fltrage image sous matlab

etudiant ep - Dernière réponse le 1 mai 2012 à 20:00
Bonjour,
je dois dans le cadre d'un projet filtrer des images avec matlab afin d'en retirer le bruit . j'aimerai connaitre la syntaxe a appliquer pour traiter une image (matrice 512x512)
je voudrai également connaitre tous les filtres qu'il existe pour ce type d'image avec matlab
merci d'avance
Lire la suite 

Fltrage image sous matlab »

Suggestions
10 réponses
Réponse
+20
moins plus
bojour
ya deux types de filtre pour les imasages
_ filtre frequentiel
-- filtre frequentile

********* dans les filtre spatial on trouve:

a-filtre moyen :Le filtre moyen remplace la valeur d'un pixel par la moyenne de sa valeur et de la valeur des 8 pixels qui l'entourent . La matrice est donc une 3x3 dont chacun des membres vaut 1/9.
Le filtre moyen
_ Permet de lisser l'image (smoothing)
_ Remplace chaque pixel par la valeur moyenne de ses voisins
_ Réduit le bruit
_ Réduit les détails non-important
_ Brouille ou rend floue l'image (blur edges)
program: h=fspecial('average');
C =filter2(h,J);%J notre image,H lareponse du filtre
b-le filtre gaussien:
Le filtrage gaussien de l'image résulte de la convolution de cette fonction avec des gaussiennes en chaque point de l'image,Un inconvénient évident du filtrage gaussien est qu’il ne lisse pas uniquement le bruit, mais il gomme aussi les contours, les rendant difficilement identifiables.Le filtre gaussien donnera un meilleure lissage et une meilleure réduction du bruit que le filtre moyenne.
Programme :
h=fspecial('gaussian');
C=conv2(h,J);

c- Filtre médian : B=medfilt2(J);


*********Filtrage fréquentiel :

–C’est la modification des fréquences de l’image de départ.
–Cette modification est réalisée directement à partir de la représentation fréquentielle F(u,v), en la multipliant par la fonction de transfert du filtre G(u,v).

Cette relation permet de dire que les filtrages basés sur une convolution spatiale peuvent se réaliser très simplement par produit simple en fréquence.
On construit le filtre (sa fonction de transfert H(u,v)) directement en fréquence.

Contenu fréquencield'une image
•Basses fréquences:ce qui varie lentement (formes générales)
•Hautes fréquences:ce qui varie rapidement (détails, bords, bruit...)

a-filtre passe bas:
F=fftshift(fft2(I));
%calcul de la taille de l'image;
M=size(F,1);
N=size(F,2);
P=size(F,3);
H0=zeros(M,N);
D0=3;
M2=round(M/2);
N2=round(N/2);
H0(M2-D0:M2+D0,N2-D0:N2+D0)=1;
for i=1:M
for j=1:N
G(i,j)=F(i,j)*H0(i,j);
end
end
g=ifft2(G);
subplot(1,2,1);imshow(I);title('image originale');
subplot(1,2,2);imshow(abs(g),[0,255]);title('image filtrée');



b-filtre passe haut
Programme :
%charge;
F=fftshift(fft2(I));
%calcul de la taille de l'image;
M=size(F,1);
N=size(F,2);
P=size(F,3);
H1=ones(M,N);
D0=2;
M2=round(M/2);
N2=round(N/2);
H1(M2-D0:M2+D0,N2-D0:N2+D0)=0;
for i=1:M
for j=1:N
G(i,j)=F(i,j)*H1(i,j);
end
end
g=ifft2(G);
subplot(1,2,1);imshow(I);title('image originale');
subplot(1,2,2);imshow(255-abs(g),[0,255]);title('image filtrée');



c-Filtre passe bas de Butterworth :
Programme :
%charge;
F=fftshift(fft2(I));
%calcul de la taille de l'image;
M=size(F,1);
N=size(F,2);
P=size(F,3);
H0=zeros(M,N);
D0=3;
M2=round(M/2);
N2=round(N/2);
H0(M2-D0:M2+D0,N2-D0:N2+D0)=1;
n=3;
for i=1:M
for j=1:N
H(i,j)=1/(1+(H0(i,j)/D0)^(2*n));
G(i,j)=F(i,j)*H(i,j);
end
end
g=ifft2(G);
subplot(1,2,1);imshow(I);title('image originale');
subplot(1,2,2);imshow(abs(g),[0,255]);title('image filtrée');



d- Filtre passe haut de Butterworth :
Programme :
%charge;
F=fftshift(fft2(I));
%calcul de la taille de l'image;
M=size(F,1);
N=size(F,2);
P=size(F,3);
H1=ones(M,N);
D0=3;
M2=round(M/2);
N2=round(N/2);
H1(M2-D0:M2+D0,N2-D0:N2+D0)=0;
n=3;
for i=1:M
for j=1:N
H(i,j)=1/(1+(H1(i,j)/D0)^(2*n));
G(i,j)=F(i,j)*H(i,j);
end
end
g=ifft2(G);
subplot(1,2,1);imshow(I);title('image originale');
subplot(1,2,2);imshow(255-abs(g),[0,255]);title('image filtrée');

remarque : si vous voulez plus dedetails consulter le livre : ""signaus et images sous matlab - GERARD BLANCHET ET MAURICE CHARBIT """

bonnnnnnn couraggggggggggge
Aliya - 23 avril 2010 à 16:42
bonne réponse , merci bien :)
abdo - 3 juin 2011 à 01:31
merci
sifaw - 1 mai 2012 à 20:00
merci
Ajouter un commentaire
Réponse
+1
moins plus
bonjour,j'ai un pett problème ce qui quand je faire écrire le programme de d'un filtre sur une image ,je aurra des fautes je ne sais pas ou
voilla le message d'érreur sur matlab:

??? filtre passe bas de butterwertt
|
Error: Missing operator, comma, or semicolon.
et merci avant tout
lamse - 11 août 2009 à 15:11
mdr. ouai c'est normal, il faut pas recopier la premiere ligne. le code commence qu'a partir du "%" et encore tu pourrais passer direct a la ligne d'après...
Ajouter un commentaire
Réponse
+0
moins plus
comment representer un filtre passe haut sous linux
Ajouter un commentaire
Ce document intitulé « fltrage image sous matlab » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?