clear all
load OutofFocus.mat
figure(1)
imagesc(p,[0 180])
colormap(gray)
set(gca,'dataaspectratio',[1 1 1]);
title('Out of Focus Image');
pause
pf = fftshift(fft2(p));
N = size(p,2);
M = size(p,1);
i = ones([M 1])*[1:N];
j = [1:M]'*ones([1 N]);
lp = zeros(size(p));
lp(1,1) = 4;
lp(1,2) = -1;
lp(2,1) = -1;
lp(1,end) = -1;
lp(end,1) = 1;
lpf = fftshift(fft2(lp));
% sigma = 20-40, 25
% k = 0.01 - 0.001, 0.01
for t = 1:100
sigma = input('Enter sigma (10-50):');
K = input('Enter K(0.0001-0.01):');
hf = exp(-((i-N/2).^2+(j-M/2).^2)/(2*sigma^2));
figure(2)
imagesc(abs(hf))
colormap(gray)
title('Estimated Degradation (Blurring) Function');
f = conj(hf).*pf./(hf.^2+K*lpf.^2);
pr = real(ifft2(fftshift(f)));
figure(3)
imagesc(pr,[0 180])
set(gca,'dataaspectratio',[1 1 1]);
title('Constrained Least Square Filtered Image');
colormap(gray)
drawnow
end