x=imread('lena.bmp');
x=rgb2gray(x);
x=double(x);
mask=zeros(size(x));
mask(200:300,200:300)=1;
x1=x.*mask;
xm=uint8(x1);
xf=fft2(x1);
absfx=abs(xf);
y=randn(size(x));
iteration=400;
beta=0.97;
i=1:iteration;
for iter=1:iteration
y=myHIO(y, absfx, mask, beta);
% y=myER(y, absfx, mask);
x1=uint8(x1);
y=uint8(real(y));
figure(1)
subplot(1,2,1), imshow(x1), axis image, title('ER');
subplot(1,2,2), imshow(y), axis image, title(iter);
y=double(y);
end
PSNR = Psnr(x1,y);
y=uint8(real(y));
imwrite(y,'poisson HIO 400.bmp','bmp');
figure(2)
subplot(1,2,1),imshow(xm,[]),title('原始图像');
subplot(1,2,2),imshow(y,[]),title('相位恢复后图象');