维纳滤波又称为最小均方误差滤波,由N.Wiener[1942]首次提出:
维纳滤波简单实现:
function f_Wn=wienerfilter(f,H,K)
if nargin==2
K=0.1;
end
f = im2double(f);
[M, N] = size(f);
F = fft2(f);
Fc = fftshift(F);
H_Wn = zeros(M,N);
H_Wn = ((abs(H).^2)./((abs(H).^2)+K)).*(1./H);
F_Wn = H_Wn.*Fc;
F_Wn = ifftshift(F_Wn);
f_Wn = real(ifft2(F_Wn));