Rechercher : dans
Par :

Le filtre median sous matlab

Dernière réponse le 11 déc 2008 à 19:23:01 youir, le 7 déc 2008 à 17:48:02 
 Signaler ce message aux modérateurs

Bonjour,j'ai un probleme de construction du script du filtre median sous matlab si vous pouvez m'aider a resoudre ce probleme

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « le filtre median sous matlab » dans :
Représentation des courbes sous Matlab VoirLa fonction plot permet essentiellement de tracer des courbes sous Matlab. Dans cette astuce, nous allons essayer de détailler le fonctionnement de cette commande. Simple utilisation Vecteur Matrice Vecteur en fonction d'un autre Autres...
Concaténer les vecteurs ou les matrices sous Matlab VoirL'opération de concaténation des variables de Matlab consiste à regrouper ces variables dans une seule (vecteur ou matrice). Exemple : |2 3 4| X= |1 2 5| |0 2 7| Avec : |9 6 8| Y= |5 6 2| |3 2 1| Donne...
Télécharger DS Monkey Audio - Filtre APE VoirLe format MonkeysAudio (extension *.ape) est un format de compression audio lossless (sans pertes) permettant de réduire la taille d'un fichier de moitié sans aucune perte d'information. Le filtre audio DS Monkey Audio Filter utilise la librairie...
Les filtres graphiques VoirFiltrage Le filtrage consiste à appliquer une transformation (appelée filtre) à tout ou partie d'une image numérique en appliquant un opérateur. On distingue généralement les types de filtres suivants : les filtres passe-bas, consistant à atténuer...

1

Char Snipeur, le 8 déc 2008 à 09:38:17

Oui, donne nous ce que tu as fais, et dis nous où tu bloque précisement. Salutation !
Char Snipeur

Répondre à Char Snipeur

2

youir, le 8 déc 2008 à 23:51:49

Bon voici le script que j'ai fais mais ne donne pas de resultats si vous pouvez m'aider :

function y= fime(ima)
aa=ima;
ima=double(ima);
[m,n]=size(ima);
y=zeros(size(ima));
mm=[1 1 1 1 1 1 1 1 1];
mask=[0 0 0 0 1 0 0 0 0];
for i=4: (m-3)
for j=4: (n-3)
for k=1:3
for l=1:3
mm(k+l-1)=ima(k,l);
end
end
for u=1:8
if(mm(u)<mm(u+1))
pp=mm(u+1);
mm(u+1)=mm(u);
mm(u)=pp;
end
end
ima(i,j)=(mm*mask');
end
end
y=uint8(ima);
imshow(aa),figure,imshow(y)

Répondre à youir

3

Char Snipeur, le 9 déc 2008 à 11:46:44

Hum... pas trè-s clair ton code.
Je te propose (sans tester) ça :
for i=4: (m-3)
for j=4: (n-3)
for k=1:3
for l=1:3
mm(k+3*(l-1))=ima(i+k,j+l);
end
end
%% à ce niveau là, tu a mis dans 'mm' les 9 valeurs de l'image sur lesquelles tu veux appliqué le script
%% Maintenant on passe à l'algo cherchant la valeur à retenir
for u=1:9
if(sum(mm(u)<mm) == sum(mm(u)>mm) )
pp=mm(u); %% tu prends la valeur qui a autant de nombre plus grand que de nombre plus petit qu'elle dans mm (c'est ma definition de filtre median)
%% Il reste un problème de bord si tu as deux valeurs égalent candidate dans mm
end
end
%% maintenant tu met la valeur obtenu par le filtre dans une variable temporaire (sinon tu va la réutilisé dans le passage suivant
ima2(i,j)=pp;
end Salutation !
Char Snipeur

Répondre à Char Snipeur

4

 youir, le 11 déc 2008 à 19:23:01

Merci beaucoup Char Snipeur ça marche trés bien et testé sur matlab et donne de bon resultats ;)
+++

Répondre à youir