如何在Matlab中恢复使用Wiener滤镜应用了盐和胡椒滤镜的RGB图像?这是我的代码
image=imread('1.jpg');
sandpimage = imnoise(image, 'salt & pepper', 0.05);
我想我必须使用deconvwnr函数,但它需要给出第二个参数PSF
答案 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
函数