如何恢復含鹽的RGB圖像&在Matlab中使用維納濾波器應用椒鹽濾波器?這是我的代碼在matlab中使用維納濾波器去除椒鹽噪音
image=imread('1.jpg');
sandpimage = imnoise(image, 'salt & pepper', 0.05);
我想我必須使用deconvwnr功能,但它需要一個第二參數PSF給予
如何恢復含鹽的RGB圖像&在Matlab中使用維納濾波器應用椒鹽濾波器?這是我的代碼在matlab中使用維納濾波器去除椒鹽噪音
image=imread('1.jpg');
sandpimage = imnoise(image, 'salt & pepper', 0.05);
我想我必須使用deconvwnr功能,但它需要一個第二參數PSF給予
分別應用過濾器,以每種顏色層(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
函數中的窗口大小
.jpg圖像是Matlab中的3D真彩色圖像,如果您可以在.tif或.png(它們都支持2D圖片)中轉換此類圖片,則可以使用'wiener2() '或者中值濾波器('midfilt2()'),它在標準圖像恢復方面也有很好的表現。 – Alessiox
我已經將圖像轉換爲.png和.tiff,並沒有幫助。仍在收到 '使用wiener2錯誤> ParseInputs(第139行) WIENER2不支持將3D真彩圖像作爲輸入。' 而我不能使用中位數,我需要這個完全維納過濾器 – Sheldon