使用Wiener反卷积进行图像去模糊

时间:2015-05-30 14:21:19

标签: matlab image-processing

我试图通过Wiener deconvolution对以下图像进行辩论。我没有得到原始的PSF,我想出了噪声系数的任意值。我尝试通过玩sigma值来优化代码,但我无法让它工作。

我的代码......

img = im2double(imread('C:\Users\adhil\Desktop\matlab pics\test.JPG'));
LEN = 2;
THETA = 5;
PSF = fspecial('gaussian', LEN, THETA);
wnr1 = deconvwnr(img, PSF, 0.0000001);
imshow(wnr1);
title('Restored Image');

subplot(1,2,1);imshow(img);title('Before');
subplot(1,2,2);imshow(wnr1);title('After');

这是结果......

enter image description here

请告知

1 个答案:

答案 0 :(得分:1)

如果您不知道点扩散函数是什么,或者您尝试的是远离实际点扩散函数的近似值,那么Wiener反卷积将无法很好地工作,因为它依赖于知道点扩散函数。 / p>

尝试盲解卷积(Matlab函数)可能会有更好的结果:

  

deconvblind

使用与高斯PSF猜测相同大小的数组作为初始PSF(使用Matlab文档建议的数组)。