這節的内容主要與圖像去噪有關。在這裡我們假設圖像中存在的唯一退化為噪聲項,則圖像的退化過程可以描述成如下的形式
噪聲項是未知的,是以從 g(x,y) 減去 n(x,y) 是很難實作的。雖然對于周期噪聲,可以通過觀察圖檔的頻譜得到 N(u,v) ,但是這隻是一種特例,大部分的噪聲是無法用這樣的方法去除掉的。接下來将從空間濾波與頻域濾波兩個方面介紹圖像去噪的方法。
1. 空間濾波
當僅存在加性噪聲時(非周期的加性噪聲),可以采用空間濾波的方法。在這裡應該首先指出濾波與卷積的過程十分相似,但是兩者也是有較大差別的,具體可以參考我轉載的這這篇文章《圖像的複原與重建(4):圖像進行中濾波(filtering)與卷積(convolution)的差別》。
1.1 均值濾波
使用一個像素點鄰域内的所有像素點(包括他自己)的均值作為該像素點濾波後的值,即
其中假設 m,n 是奇整數。這樣的濾波器使用一個大小為 m×n 的空間濾波器來實作,其所有系數均為 1/mn。均值濾波平滑一幅圖像的局部變化,雖然模糊了結果,但降低了噪聲。
MATLAB實作代碼:
A=fspecial('average',);
for i =::
Jm(:,:,i)= filter2(A,J(:,:,i))/;
end
在這裡首先定義了一個用于濾波的模闆 A 。其中h = fspecial(type, parameters)的作用産生一個二維的濾波器,其中“type”指定濾波器的種類(具體有多少種可以參加 MATLAB 幫助文檔),而“parameters”指定參數;其次“Y = filter2(h,X,shape)”的作用是是一個模闆 h 對 圖像 X 進行濾波操作,shape 指定濾波操作之後圖像的大小。需要注意的是 filter2 是二維濾波,彩色圖像為三維的,是以如果是對彩色圖像進行濾波操作應該分别對RGB三個通道分别濾波,再将濾波後的結果疊加在一起。