%RPN, image en niveaux de gris

a=imread('wall.png');
a=mean(a,3);
A=fft2(a);
n=randn(size(a));
N=fft2(n);
B=abs(A).*exp(i*angle(N));
b=real(ifft2(B));
imagesc(b);colormap gray;

%RPN en couleur

a=imread('serviette.jpg');
A=fft2(a);
n=randn(size(a(:,:,1)));
N=fft2(n);
B=zeros(size(a));
B(:,:,1)=abs(A(:,:,1)).*exp(i*(angle(A(:,:,1))+angle(N)));
B(:,:,2)=abs(A(:,:,2)).*exp(i*(angle(A(:,:,2))+angle(N)));
B(:,:,3)=abs(A(:,:,3)).*exp(i*(angle(A(:,:,3))+angle(N)));
b=real(ifft2(B));
b=uint8(b);
imshow(b);


%ADSN en niveaux de gris
a=imread('wall.png');
a=mean(a,3);
m=mean(mean(a));
[h,l]=size(a);

%image normalisee et sa TFD
an=a-m*ones(size(a));
an=an/(h*l);
A=fft2(a);

%bruit gaussien et sa TFD
n=randn(size(a));
N=fft2(n);

%bruit final
B=A.*N;
b=ifft2(B);

%on ajoute la motyenne
b=b+m;

imagesc(b);colormap gray;


%ADSN en couleur... a faire (attention a retirer la moyenne separemment sur chaque canal couleur)



