%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%
% This function takes the fft of the input image, gets the phase of the spectrum and
% replaces it by a random phase
%
%       ima_out = random_phase(ima)
%
% Yvan Petillot, December 2001                                
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function ima_out = random_phase(ima);

 % Get fourier transform first
 imafft = fft2(ima);
 
 % Gets magnitude and phase.
 mag = abs(imafft);
 phi = angle(imafft);
 s = size(ima);
 rand_phase = 4*pi*(rand(s(1),s(2))-0.5);  %random phase between 0 and 2pi
 % Generates the modified spectrum
 newfft = mag.*exp(i*rand_phase);
 
 ima_out = ifft2(newfft);
 
 figure(2);
 imagesc(abs(ima_out));
 axis image;
 title('Ramdom phase version');
 
