基于维纳滤波器的Matlab图像复原

基于维纳滤波器的Matlab图像复原,matlab,Matlab,我有一个图像是通过水平运动模糊模糊。 我必须用维纳滤波器恢复它。 我做了以下工作: I = im2double(imread('blurred image.tif')); % Load image LEN = 50; THETA = 0; noise_var = 0.001; est_nsr = noise_var /var(I(:)); PSF = fspecial('motion',LEN,THETA); wnr = deconvwnr(I,PSF, est_nsr); 当我看分辨率

我有一个图像是通过水平运动模糊模糊。 我必须用维纳滤波器恢复它。 我做了以下工作:

I = im2double(imread('blurred image.tif')); % Load image
LEN = 50; 
THETA = 0; 
noise_var = 0.001;
est_nsr = noise_var /var(I(:)); 
PSF = fspecial('motion',LEN,THETA);
wnr = deconvwnr(I,PSF, est_nsr);
当我看分辨率图像时,似乎有垂直线破坏了图像质量,另外,还有相当多的噪声。 我试着玩参数,但这是我能得到的最好的。
我可能做错了吗?

不,听起来差不多是对的。在给定运动模糊的情况下,几乎不可能完全重建原始图像。你肯定会了解一些原始结构。请看这些幻灯片中的幻灯片#11:-您可以看到,即使他们使用维纳滤波器从运动模糊中重建图像,他们也无法将图像完全恢复到原始状态。。。。运动模糊只是平展烂!