模糊滤波和维纳滤波

1、模糊滤波

这是由运动引起的图像模糊。假设问题中的图像在x和y方向以给定速度x0(t)=at/T做匀速直线运动,其退化函数为:

模糊滤波和维纳滤波

 

2、维纳滤波

维纳滤波综合了退化函数和噪声统计特性两个方面进行复原处理,该方法是建立在认为图像和噪声是随机过程的基础上,目标是找一个未污染图像的估计值,使它们之间的均方误差最小。误差度量由下式给出:

模糊滤波和维纳滤波

其中E是参数的期望值。这里假设噪声和图像不相关,其中一个或另一个有零均值,且估计的灰度级是退化图像灰度级的线性函数。在这些条件下,误差函数的最小值在频域用下列表达式计算:

模糊滤波和维纳滤波

模糊滤波

%模糊滤波
function B =  Blurred_Filter(c,a,b,T) 

[M,N] = size(c);
F = fft2(c);

for u = 1:M
    for v = 1:N
        K(u,v) = pi * (u * a + v * b);
        H(u,v) = T * sin(K(u,v)) * exp(-1j * K(u,v))/K(u,v);
        G(u,v) = H(u,v) * F(u,v);
    end
end

B = ifft2(G);
B = uint8(abs(B));

end

维纳滤波 

%维纳滤波
function D = Wiener_Filter(img_src,img_degradation,K) 

[M,N] = size(img_src);
S = fft2(img_src);
G = fft2(img_degradation);

for u = 1:M
    for v = 1:N
        H(u,v) = G(u,v)/S(u,v);
        F(u,v) = 1/H(u,v)*(abs(H(u,v)))^2/((abs(H(u,v)))^2+K)*G(u,v);
    end
end

D = ifft2((F));
D = uint8(abs(D));

end

上一篇:python内置方法1. abs() 函数


下一篇:八皇后问题(回溯算法)