Urgent comprendr le programme matlab suivant?
dounia kella
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
voila mon programme mais j'arrive pas a comprendre les instructions et ce qu'elle font exactement vu qu'il y a pas beaucoup de commentaire, 'tory' est le nom de mon image,
voila merci d'avance.
dt=0.1;
kmax=15;
Im=imread('C:\Documents and settings\tory.jpg');
Im=double(Im);
figure(1);
imshow(unit8(Im));
[m,n]=size(Im);
%Ajouter du bruit gaussien
%std_n=0;
% no noise
randn('seed',1296);
noise=randn(size(Im))*20;
Ig=Im+noise;
figure(2);
clf;
imshow(unit8(Ig));
%ajouter du flou gaussien a l'image
PSF=fspecial('gaussian',11,3);
Iflou=imfilter(Im,PSF,'conv');
figure(3);
imshow(unit8(Iflou));
%implémenter le filtre de choc
I=Iflou;
I=double(I);
for i=2:m-1;
for j=2:n-1;
Ixp=I(i,j+1)-I(i,j);
Ixn=I(i,j-1)-I(i,j);
Iyp=I(i+1,j)-I(i,j);
Iyn=I(i-1,j)-I(i,j);
if ((Ixp*Ixn)<0)
Ix=min(Ixp,Ixn);
else
Ix=0;
end
if ((Iyp*Iyn)<0)
Iy=min(Iyp,Iyn);
else
Iy=0;
end
%grad(i,j)=sqrt((I(i,j+1)-I(i,j))^2+(I(i+1),j)-I(i,j))^2);
grad(i,j)=sqrt((Ix)^2+(Iy)^2);
lap(i,j)=I(i-1,j)+I(i+1,j)+I(i,j-1)+I(i,j+1)-4*I(i,j);
end
end
for k=1:kmax;
for i=2:m-1;
for j=2:n-1;
Ifiltre(i,j)=I(i,j)-dt*sign(lap(i,j))*grad(i,j);
I(i,j)=Ifiltre(i,j);
end
end
end
figure(4);
imshow(unit8(Ifiltre))
voila merci d'avance.
dt=0.1;
kmax=15;
Im=imread('C:\Documents and settings\tory.jpg');
Im=double(Im);
figure(1);
imshow(unit8(Im));
[m,n]=size(Im);
%Ajouter du bruit gaussien
%std_n=0;
% no noise
randn('seed',1296);
noise=randn(size(Im))*20;
Ig=Im+noise;
figure(2);
clf;
imshow(unit8(Ig));
%ajouter du flou gaussien a l'image
PSF=fspecial('gaussian',11,3);
Iflou=imfilter(Im,PSF,'conv');
figure(3);
imshow(unit8(Iflou));
%implémenter le filtre de choc
I=Iflou;
I=double(I);
for i=2:m-1;
for j=2:n-1;
Ixp=I(i,j+1)-I(i,j);
Ixn=I(i,j-1)-I(i,j);
Iyp=I(i+1,j)-I(i,j);
Iyn=I(i-1,j)-I(i,j);
if ((Ixp*Ixn)<0)
Ix=min(Ixp,Ixn);
else
Ix=0;
end
if ((Iyp*Iyn)<0)
Iy=min(Iyp,Iyn);
else
Iy=0;
end
%grad(i,j)=sqrt((I(i,j+1)-I(i,j))^2+(I(i+1),j)-I(i,j))^2);
grad(i,j)=sqrt((Ix)^2+(Iy)^2);
lap(i,j)=I(i-1,j)+I(i+1,j)+I(i,j-1)+I(i,j+1)-4*I(i,j);
end
end
for k=1:kmax;
for i=2:m-1;
for j=2:n-1;
Ifiltre(i,j)=I(i,j)-dt*sign(lap(i,j))*grad(i,j);
I(i,j)=Ifiltre(i,j);
end
end
end
figure(4);
imshow(unit8(Ifiltre))
A voir également:
- Urgent comprendr le programme matlab suivant?
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide