demandeaidematlab Posté(e) le 14 juin 2007 Partager Posté(e) le 14 juin 2007 bonjour, j'ai un probleme avec le filtre de nagao c'est que je sais pas pourquoi ça fonctionne pas et où est vraiment le problème: je vous montre le code ,si quelqu'un peut m'aider ça serait cool de sa part merci. function [img_sortie]=nagao(img) [rows,cols]=size(img); img=double(img); M=zeros(9,9); image_sortie=zeros(rows,cols); for i=3:rows-2 for j=3:cols-2 f=img(i-2:i+2,j-2:j+2); M(:,1)=[f(:,1);f(2:4,2);f(3,3)]; M(:,2)=[f(1,1);f(1:2,2);f(1:3,3);f(1:2,4);f(1,5)]; M(:,3)=[f(2:4,4);f(:,5);f(3,3)]; M(:,4)=[f(5,1);f(4:5,2);f(3:5,3);f(4:5,4);f(5,5)]; M(:,5)=[f(1:3,1);f(1:3,2);f(1:3,3)]; M(:,6)=[f(1:3,3);f(1:3,4);f(1:3,5)]; M(:,7)=[f(3:5,3);f(3:5,4);f(3:5,5)]; M(:,8 )=[f(3:5,1);f(3:5,2);f(3:5,3)]; M(:,9)=[f(2:4,2);f(2:4,3);f(2:4,4)]; sigma=std(M); [var,ind]=min(sigma); image_sortie(i,j)=mean(M(:,ind)); end end img=uint8(img); subplot(1,2,1);imshow(img);title('Image originale'); subplot(1,2,2);imshow(image_sortie);title('Image apré filtrage Nagao'); Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 14 juin 2007 Partager Posté(e) le 14 juin 2007 bonjour,j'ai un probleme avec le filtre de nagao c'est que je sais pas pourquoi ça fonctionne pas et où est vraiment le problème: je vous montre le code ,si quelqu'un peut m'aider ça serait cool de sa part merci. function [img_sortie]=nagao(img) [rows,cols]=size(img); img=double(img); M=zeros(9,9); image_sortie=zeros(rows,cols); for i=3:rows-2 for j=3:cols-2 f=img(i-2:i+2,j-2:j+2); M(:,1)=[f(:,1);f(2:4,2);f(3,3)]; M(:,2)=[f(1,1);f(1:2,2);f(1:3,3);f(1:2,4);f(1,5)]; M(:,3)=[f(2:4,4);f(:,5);f(3,3)]; M(:,4)=[f(5,1);f(4:5,2);f(3:5,3);f(4:5,4);f(5,5)]; M(:,5)=[f(1:3,1);f(1:3,2);f(1:3,3)]; M(:,6)=[f(1:3,3);f(1:3,4);f(1:3,5)]; M(:,7)=[f(3:5,3);f(3:5,4);f(3:5,5)]; M(:,8 )=[f(3:5,1);f(3:5,2);f(3:5,3)]; M(:,9)=[f(2:4,2);f(2:4,3);f(2:4,4)]; sigma=std(M); [var,ind]=min(sigma); image_sortie(i,j)=mean(M(:,ind)); end end img=uint8(img); subplot(1,2,1);imshow(img);title('Image originale'); subplot(1,2,2);imshow(image_sortie);title('Image apré filtrage Nagao'); jer le remets en parce que c'est plus lisible.D'autre part, tu es sur que le calcul de variance se fait sur la bonne dimension. Je serais toi, j'essayerais std(M, 0, 2) Lien vers le commentaire Partager sur d’autres sites More sharing options...
demandeaidematlab Posté(e) le 14 juin 2007 Auteur Partager Posté(e) le 14 juin 2007 bonsoir, merci lorinc pour ta réponse, en faite j'ai un autre problème si vous voulez bien m'aidez,il s'agit de l'érosion et la dilatation, en ce qui concerne l'element structurant par exemple v4=[0 1 0; 1 0 1; 0 1 0] si je veux l'appliquer sur mon image que j'ai binarisé donc elle contient que des niveau de gris entre 0 et 255 ,j'ai declarer une autre image dont les niveau de gris sont 255 toute c=ones(rows,cols)*255; est ce que je considère les 1 de mon element structurant comme 255 et donc c'est le fond et 0 comme objet puis je teste sur les pixels de mon image ou bien je fais ça vous montre le code function C=erosion(A) [n,m]=size(A); C=ones(n,m)*255; for i=2:n-1 for j=2:m-1 if ((A(i,j)== 0)&(A(i-1,j)== 0)& (A(i,j-1)== 0)& (A(i,j+1)==0)&(A(i+1,j)== 0)) C(i,j)=0; else C(i,j)=255; end end end subplot(1,3,3);imshow©;title('Image aprés Erosion'); enfin je sais pas si ce code est correct ou pas aidez moi,surtout que mon examen approche, autre chose j'aimerai savoir comment créer mon element structurant v4 via la fonction strel() la syntaxe de cette fonction svp. merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.