在matlab中使用维纳过滤器去除盐和胡椒噪音

时间:2016-03-13 15:45:28

标签: matlab image-processing

如何在Matlab中恢复使用Wiener滤镜应用了盐和胡椒滤镜的RGB图像?这是我的代码

image=imread('1.jpg');
sandpimage = imnoise(image, 'salt & pepper', 0.05);

我想我必须使用deconvwnr函数,但它需要给出第二个参数PSF

1 个答案:

答案 0 :(得分:1)

将滤镜分别应用于每个颜色层(R,G,B):

sandpimage_filtered = sandpimage;

for layer=1:3
    sandpimage_filtered(:,:,layer) = wiener2(sandpimage(:,:,layer), [5 5]);
end

%//plot the images to see the difference
subplot(2,1,1)
imshow(sandpimage)
subplot(2,1,2)
imshow(sandpimage_filtered)

在上面的代码中,我使用的窗口大小为5x5。您可以在wiener2函数

中更改窗口大小