%第一步:抽样
image0 = imread('D:\桌面\666.jpg');
%转为灰度图(若已为灰度图则忽略)
%image0 = rgb2gray(image0);
image0 = im2double(image0);
[M,N] = size(image0);
%输出原图
figure;
subplot(2,2,1);
imshow(image0);
title('原图')
%加入随机位相信息
PI = 3.14159;
image1 = image0;
phase = 2i*PI*rand(M,N);
image1 = image1.*exp(phase);
%输出随机位相图
subplot(2,2,2);
imshow(image1);
title('随机位相图');
%第二步:计算编码
%第一次逆傅里叶变换
image2 = ifft2(ifftshift(image1));
%迭代过程
for t=1:1:1000
%迭代判据
imgangle = angle(image2); %取位相
image = exp(1i*imgangle);
image = fftshift(fft2(image)); %还原
imgabs = abs(image)/max(max(abs(image)));