2010-05-05 122 views
11

對於m x n具有一些噪聲圖像的元素陣列,我想執行Gaussian smoothing。我該怎麼做MATLABMATLAB中的高斯平滑

我讀過的數學涉及到在一定範圍內使用內核平滑所有內容,但我不知道如何在MATLAB中完成此操作。

+0

如果你認爲它解決了你的問題,你應該接受最好的答案(當然似乎是這樣)。要做到這一點,只需點擊答案旁邊的複選標記即可。歡迎來到社區:) – 2012-10-14 19:15:11

回答

27

希望你有圖像處理工具箱。如果是這樣,那麼你可以創建一個高斯濾波器與fspecial function像這樣:

myfilter = fspecial('gaussian',[3 3], 0.5); 

我已經使用了默認值HSIZE([3 3])和Sigma(0.5)在這裏,但你可能要玩和他們在一起。 hsize只是過濾器的大小,在這種情況下它是一個3 x 3的矩陣。 Sigma是高斯函數的西格瑪(參見fspecial函數頁面的底部)。現在

可以使用imfilter來過濾圖像:

myfilteredimage = imfilter(unfilteredimage, myfilter, 'replicate'); 

在這裏我已經在unfilteredimage,過濾器,並說,過濾器應如何處理邊界的參數,簡單的通過。在這種情況下,我選擇了將數組邊界外的輸入數組值設置爲最接近的數組邊界值的複製,但是您可以嘗試其他一些值(或者將該選項全部設置爲0以外)。