June 14, 200718 yr 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');
June 14, 200718 yr 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)
June 14, 200718 yr Author 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
Archived
This topic is now archived and is closed to further replies.