天天看點

高斯平滑濾波器(Gaussian Smoothing Filter)

一、圖像濾波的基本概念 

圖像常常被強度随機信号(也稱為噪聲)所污染。一些常見的噪聲有椒鹽(Salt & Pepper)噪聲、脈沖噪聲、高斯噪聲等。椒鹽噪聲含有随機出現的黑白強度值.而脈沖噪聲則隻含有随機的白強度值(正脈沖噪聲)或黑強度值(負脈沖噪聲)。高斯噪聲含有強度服從高斯或正态分布的噪聲。

圖像濾波總體上講包括空域濾波和頻域濾波。頻率濾波需要先進行傅立葉變換至頻域處理然後再反變換回空間域還原圖像,空域濾波是直接對圖像的資料做空間變換達到濾波的目的。它是一種鄰域運算,即輸出圖像中任何像素的值都是通過采用一定的算法,根據輸入圖像中對用像素周圍一定鄰域内像素的值得來的。如果輸出像素是輸入像素鄰域像素的線性組合則稱為線性濾波(例如最常見的均值濾波和高斯濾波),否則為非線性濾波(中值濾波、邊緣保持濾波等)。 

線性平滑濾波器去除高斯噪聲的效果很好,且在大多數情況下,對其它類型的噪聲也有很好的效果。線性濾波器使用連續窗函數内像素權重和來實作濾波。特别典型的是,同一模式的權重因子可以作用在每一個視窗内,也就意味着線性濾波器是空間不變的,這樣就可以使用卷積模闆來實作濾波。如果圖像的不同部分使用不同的濾波權重因子,且仍然可以用濾波器完成權重運算,那麼線性濾波器就是空間可變的。任何不是像素權重運算的濾波器都屬于非線性濾波器.非線性濾波器也可以是空間不變的,也就是說,在圖像的任何位置上可以進行相同的運算而不考慮圖像位置或空間的變化。

二、圖像濾波的計算過程分析 

濾波通常是用卷積或者相關來描述,而線性濾波一般是通過卷積來描述的。他們非常類似,但是還是會有不同。下面我們來根據相關和卷積計算過程來體會一下他們的具體差別: 卷積的計算步驟: 

(1)卷積核繞自己的核心元素順時針旋轉180度 

(2)移動卷積核的中心元素,使它位于輸入圖像待處理像素的正上方 (3)在旋轉後的卷積核中,将輸入圖像的像素值作為權重相乘 (4)第三步各結果的和做為該輸入像素對應的輸出像素 相關的計算步驟: 

(1)移動相關核的中心元素,使它位于輸入圖像待處理像素的正上方 (2)将輸入圖像的像素值作為權重,乘以相關核 (3)将上面各步得到的結果相加做為輸出 

可以看出他們的主要差別在于計算卷積的時候,卷積核要先做旋轉。而計算相關過程中不需要旋轉相關核。 

例如:magic(3) =[8 1 6;3 5 7;4 9 2],旋轉180度後就成了[2 9 4;7 5 3;6 1 8]

三、高斯(核)函數 

所謂徑向基函數 (Radial Basis Function 簡稱 RBF), 就是某種沿徑向對稱的标量函數。 通常定義為空間中任一點x到某一中心xc之間歐氏距離的單調函數 , 可記作 k(||x-xc||), 其作用往往是局部的 , 即當x遠離xc時函數取值很小。最常用的徑向基函數是高斯核函數 ,形式為 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc為核函數中心,σ為函數的寬度參數 , 控制了函數的徑向作用範圍。

高斯函數具有五個重要的性質,這些性質使得它在早期圖像進行中特别有用.這些性質表明,高斯平滑濾波器無論在空間域還是在頻率域都是十分有效的低通濾波器,且在實際圖像進行中得到了工程人員的有效使用.高斯函數具有五個十分重要的性質,它們是: 

(1)二維高斯函數具有旋轉對稱性,即濾波器在各個方向上的平滑程度是相同的.一般來說,一幅圖像的邊緣方向是事先不知道的,是以,在濾波前是無法确定一個方向上比另一方向上需要更多的平滑.旋轉對稱性意味着高斯平滑濾波器在後續邊緣檢測中不會偏向任一方向. 

(2)高斯函數是單值函數.這表明,高斯濾波器用像素鄰域的權重均值來代替該點的像素值,而每一鄰域像素點權值是随該點與中心點的距離單調增減的.這一性質是很重要的,因為邊緣是一種圖像局部特征,如果平滑運算對離算子中心很遠的像素點仍然有很大作用,則平滑運算會使圖像失真. 

(3)高斯函數的付立葉變換頻譜是單瓣的.正如下面所示,這一性質是高斯函數付立葉變換等于高斯函數本身這一事實的直接推論.圖像常被不希望的高頻信号所污染(噪聲和細紋理).而所希望的圖像特征(如邊緣),既含有低頻分量,又含有高頻分量.高斯函數付立葉變換的單瓣意味着平滑圖像不會被不需要的高頻信号所污染,同時保留了大部分所需信号. (4)高斯濾波器寬度(決定着平滑程度)是由參數σ表征的,而且σ和平滑程度的關系是非常簡單的.σ越大,高斯濾波器的頻帶就越寬,平滑程度就越好.通過調節平滑程度參數σ,可在圖像特征過分模糊(過平滑)與平滑圖像中由于噪聲和細紋理所引起的過多的不希望突變量(欠平滑)之間取得折衷. 

(5)由于高斯函數的可分離性,大高斯濾波器可以得以有效地實作.二維高斯函數卷積可以分兩步來進行,首先将圖像與一維高斯函數進行卷積,然後将卷積結果與方向垂直的相同一維高斯函數卷積.是以,二維高斯濾波的計算量随濾波模闆寬度成線性增長而不是成平方增長.

四、高斯平滑濾波器的設計 

高斯函數的最佳逼近由二項式展開的系數決定,換句話說,用楊輝三角形(也稱Pascal三

角形)的第n行作為高斯濾波器的一個具有n個點的一維逼近,例如,五點逼近為:  1 4 6 4 1 

它們對應于Pascal三角形的第5行.這一模闆被用來在水準方向上平滑圖像.在高斯函數可分離性性質中曾指出,二維高斯濾波器能用兩個一維高斯濾波器逐次卷積來實作,一個沿水準方向,一個沿垂直方向.實際中,這種運算可以通過使用單個一維高斯模闆,對兩次卷積之間的圖像和最後卷積的結果圖像進行轉置來完成. 

這一技術在模闆尺寸N約為10時的濾波效果極好.對較大的濾波器,二項式展開系數對大多數計算機來說都太多.但是,任意大的高斯濾波器都能通過重複使用小高斯濾波器來實作.高斯濾波器的二項式逼近的σ可用高斯函數拟合二項式系數的最小方差來計算. 

設計高斯濾波器的另一途徑是直接從離散高斯分布中計算模闆權值。為了計算友善,一般希望濾波器權值是整數。在模闆的一個角點處取一個值,并選擇一個K使該角點處值為1。通過這個系數可以使濾波器整數化,由于整數化後的模闆權值之和不等于1,為了保證圖像的均勻灰階區域不受影響,必須對濾波模闆進行權值規範化。 

高斯濾波器的采樣值或者高斯濾波器的二項式展開系數可以形成離散高斯濾波器.當用離散高斯濾波器進行卷積時,其結果是一個更大的高斯離散濾波器.若一幅圖像用N*N離散高斯濾波器進行平滑,接着再用M*M離散高斯濾波器平滑的話,那麼平滑結果就和用(N+M-1)*(N+M-1)離散高斯濾波器平滑的結果一樣.換言之,在楊輝三角形中用第N行和第M行卷積形成了第N+M-1行.

五、具體設計

二維高斯函數:

高斯平滑濾波器(Gaussian Smoothing Filter)

選取不同參數σ的高斯濾波模闆,平滑的效果是有差别的,實際上σ越大其作用域就越寬,即平滑視窗越大,因而平滑的力度就越大,其結果使得圖象變得越模糊。當σ很大時,由于量化的影響,高斯濾波實際上就變成鄰域平均了。

MATLAB 程式:

x=imread('lena.gif');

figure(1);

subplot(231);imshow(x,[]);

% init=3718025452;

% rand('seed',init);

[a,h]=size(x);

xx=double(x)+20*randn(a,h); %均值為0,方差為1的标準正态分布噪聲

subplot(232);imshow(xx,[]);

n=3;   %均值n,方差k=std^2

k=0.5;

n1=(n+1)/2;  %圖象中心

% r=[cos(theta) -sin(theta); sin(theta) cos(theta)];

% [i-n1;j-n1]=r*[i-n1;j-n1];

for i=1:n 

    for j=1:n 

      h(i,j) = exp(-((i-n1)^2+(j-n1)^2)/(2*k))/(sqrt(k*2*pi)); %高斯序列h

    end 

end 

xx2=conv2(double(xx),h,'same'); %用高斯序列卷積

subplot(234);imshow(xx2,[]);title('高斯濾波器去噪');

繼續閱讀