I=imread('C:\Users\raoqiang\Desktop\第5次作业\lena.bmp');
J=imnoise(I,'gaussian',0,0.01);
[n1,n2]=size(J);
J=double(J);
f=fft2(J);
a=0.01;
b=0.01;
r=0.02;
T=1;
gama=0.01;
for k=1:n1
for j=1:n2
h(k,j)=T/(pi*(k*a+j*b))*sin(pi*(k*a+j*b))*exp(-i*pi*(k*a+j*b));
m(k,j)=h(k,j)*f(k,j);
end
end
m=ifft2(m);
ff=uint8(real(m));
subplot(131)
imshow(m)
title('加噪和运动模糊后的图像');
m=fft2(m);
%维纳和最小二乘滤波
for k=1:n1
for j=1:n2
W(k,j)=1/h(k,j)*abs(h(k,j))*abs(h(k,j))/(abs(h(k,j))*abs(h(k,j))+r)*m(k,j);
p=-4*pi*(k*k+j*j);
h1=conj(h(k,j))/(h(k,j)*conj(h(k,j))+gama*p*p);
C(k,j)=h1*m(k,j);
end
end
w=ifft2(W);
w=uint8(real(w));
subplot(132)
imshow(w)
c=ifft2(C);
c=uint8(real(c));
subplot(133)
imshow(c)