Le filtre median sous matlab

Fermé
youir
Messages postés
15
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
25 février 2010
- 7 déc. 2008 à 17:48
 hayet - 14 avril 2015 à 22:51
Bonjour,j'ai un probleme de construction du script du filtre median sous matlab si vous pouvez m'aider a resoudre ce probleme
A voir également:

4 réponses

Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 329
8 déc. 2008 à 09:38
oui, donne nous ce que tu as fais, et dis nous où tu bloque précisement.
0
youir
Messages postés
15
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
25 février 2010

8 déc. 2008 à 23:51
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)
0
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 329
9 déc. 2008 à 11:46
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
0
youir
Messages postés
15
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
25 février 2010

11 déc. 2008 à 19:23
merci beaucoup Char Snipeur ça marche trés bien et testé sur matlab et donne de bon resultats ;)
+++
0
j'ai un problème pour écrire une fonction matlab( et non pas de bloc simulink) sous simulink permettant d'appliqué un filtre médian sur une image,s'ils vous plait quelqu'un m'aider
0