雙邊濾波器、高斯濾波

摘自https://www.cnblogs.com/walccott/p/4957108.html

雙邊濾波(Bilateral filter)是一種非線性的濾波方法,是結合圖像的空間鄰近度和像素值相似度的一種折衷處理,同時考慮空域信息和灰度相似性,達到保邊去噪的目的。普通的高斯濾波會將圖像的邊緣模糊掉,而雙邊濾波器具有保邊特性。

一般的高斯模糊在進行採樣時主要考慮了像素間的空間距離關係,但是卻並沒有考慮像素值之間的相似程度,因此這樣我們得到的模糊結果通常是整張圖片一團模糊。Bilateral blur的改進就在於在採樣時不僅考慮像素在空間距離上的關係,同時加入了像素間的相似程度考慮,因而可以保持原始圖像的大體分塊進而保持邊緣。

下面先講高斯濾波,明白的同學請直接跳過。

高斯濾波

在2D高斯濾波中的具體實現就是對周圍的一定範圍內的像素值分別賦以不同的高斯權重值,並在加權平均後得到當前點的最終結果。而這裏的高斯權重因子是利用兩個像素之間的空間距離(在圖像中爲2D)關係來生成。通過高斯分佈的曲線可以發現,離目標像素越近的點對最終結果的貢獻越大,反之則越小。

高斯核函數一種最常用的徑向基函數,形式爲

其中xc爲核函數中心,σ爲函數的寬度參數 , 控制了函數的徑向作用範圍。所謂徑向基函數 (Radial Basis Function 簡稱 RBF), 就是某種沿徑向對稱的標量函數 通常定義爲空間中任一點x到某一中心xc之間歐氏距離的單調函數 , 可記作 k(||x-xc||), 其作用往往是局部的 , 即當x遠離xc時函數取值很小。
    高斯函數具有五個重要的性質,這些性質使得它在早期圖像處理中特別有用.這些性質表明,高斯平滑濾波器無論在空間域還是在頻率域都是十分有效的低通濾波器,且在實際圖像處理中得到了工程人員的有效使用.高斯函數具有五個十分重要的性質,它們是:
(1)二維高斯函數具有旋轉對稱性,即濾波器在各個方向上的平滑程度是相同的.一般來說,一幅圖像的邊緣方向是事先不知道的,因此,在濾波前是無法確定一個方向上比另一方向上需要更多的平滑.旋轉對稱性意味着高斯平滑濾波器在後續邊緣檢測中不會偏向任一方向.
(2)高斯函數是單值函數.這表明,高斯濾波器用像素鄰域的加權均值來

代替該點的像素值,而每一鄰域像素點權值是隨該點與中心點的距離單調增減的.這一性質是很重要的,因爲邊緣是一種圖像局部特徵,如果平滑運算對離算子中心很遠的像素點仍然有很大作用,則平滑運算會使圖像失真.

(3)高斯函數的付立葉變換頻譜是單瓣的.正如下面所示,這一性質是高斯函數付立葉變換等於高斯函數本身這一事實的直接推論.圖像常被不希望的高頻信號所污染(噪聲和細紋理).而所希望的圖像特徵(如邊緣),既含有低頻分量,又含有高頻分量.高斯函數付立葉變換的單瓣意味着平滑圖像不會被不需要的高頻信號所污染,同時保留了大部分所需信號.

(4)高斯濾波器寬度(決定着平滑程度)是由參數σ表徵的,而且σ和平滑程度的關係是非常簡單的.σ越大,高斯濾波器的頻帶就越寬,平滑程度就越好.通過調節平滑程度參數σ,可在圖像特徵過分模糊(過平滑)與平滑圖像中由於噪聲和細紋理所引起的過多的不希望突變量(欠平滑)之間取得折衷.

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

高斯濾波的問題

高斯濾波沒有考慮圖像的邊緣,會將邊緣模糊掉。因爲高斯核只考慮了空間分佈,沒有考慮到像素值的差異。圖像的邊緣往往是圖像灰度劇烈變化的地方。所以可以綜合考慮圖像灰度因素。

 

雙邊濾波器原理

雙邊濾波方法(Bilateral filtering)是基於Gauss 濾波方法提出的,主要是針對Gauss 濾波中將Gauss 權係數直接與圖像信息作卷積運算進行圖像濾波的原理,將濾波權係數優化成Gauss 函數和圖像亮度信息的乘積,優化後的權係數再與圖像信息作卷積運算,這樣就能在濾波的同時考慮到圖像信息中的圖像邊緣信息,使圖像在正常Gauss 濾波後很模糊的邊緣信息得以保持清晰,並且圖像邊緣更加平滑。此方法對於彩色和灰度圖像的濾波均適用,具有很強的實用性。

設原圖爲f(x,y),(x,y)爲像素的座標,雙邊濾波後(x,y)點的像素值變爲

公式中Sx,y 表示中心點(x,y)的(2N+1)*(2N+1)大小的領域。實際上,公式右邊就是中心像素點鄰域內像素亮度值的加權平均。

權值W由兩部分組成

W(i,j)=Ws(i,j)*Wr(i,j)

雙邊濾波器的加權係數是這兩部分因子的非線性組合,空間鄰近度因子Ws和亮度相似度因子Wr的乘積。前者隨着像素點與中心點之間歐幾里德距離的增加而減小,後者隨着兩像素亮度值之差的增大而減小。在圖像變化平緩的區域,鄰域內像素亮度值相差不大,雙邊濾波轉化爲高斯低通濾波器;在圖像變化劇烈的區域,濾波器利用邊緣點附近亮度值相近的像素點的亮度值平均代替原亮度值。因此,雙邊濾波器既平滑濾波了圖像,又保持了圖像的邊緣。雙邊濾波器受3個參數的控制:濾波器半寬N、參數δs和δr。N越大,平滑作用越強;δs和δr分別控制着空間鄰近度因子Ws和亮度像似度因子Wr的衰減程度。

 

 

 

#define  MAX_IMAGE_SIZE 1024
double d[MAX_IMAGE_SIZE][MAX_IMAGE_SIZE];//d[i][j]表示入圖像,fi][j]表示出圖像。
double f[MAX_IMAGE_SIZE][MAX_IMAGE_SIZE];
void CImageColorProcess::Bilateral(LPBYTE lpSrc, LPBYTE lpDst, int nSrcCount, int nW, int nH)
{
	int i, j, k, l;
	int p = 5;//p決定模板大小。當p=1時,模板爲3*3;當p=2時,模板爲5*5;當p=n時,模板爲(2n+1)*(2n+1)。
	short m, n;
	double a1 = 0.02, b1 = 0.002;
	double aa1, bb1;//aa1,bb1爲濾波模板中的各權重。
	//gguiyi高斯濾波的歸一化係數,bguiyi雙邊濾波的歸一化係數,gsum高斯濾波像素的加權和,bsum雙邊濾波像素的加權和。
	double gguiyi = 0.0, bguiyi = 0.0, gsum = 0.0, bsum = 0.0;
	int x_size2 = nW;//x_size1;
	int y_size2 = nH;//y_size1;
	LPBYTE lpSrc1 = new byte[nW*nH];
	RGB2Gray(lpSrc, lpSrc1, 24, nW, nH);
	//將讀取的噪聲圖像賦給入力圖像
	for (i = 0; i < nH; i++)
	{
		for (j = 0; j < nW; j++)
		{
			d[i][j] = lpSrc1[i*nW + j];
		}
	}
	//高斯濾波,雙邊濾波處理噪聲圖像
	for (i = 0; i < nH; i++)
	{
		for (j = 0; j < nW; j++)
		{
			for (k = -p; k <= p; k++)
			{
				for (l = -p; l <= p; l++)
				{
					m = i + k; n = j + l;
					//abs()返回指定數字的絕對值
					if (m<0)  { m = abs(i + k) - 1; }   	   
<span style="font-size: 12px;">                                        </span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> if (m>nH - 1) { m = 2 * nH - i - k - 1; }</span>
					if (n<0)  { n = abs(j + l) - 1; }	  if (n>nW - 1) { n = 2 * nW - j - l - 1; }
					aa1 = exp(-a1*(l*l + k*k));
					bb1 = exp(-b1*(d[i][j] - d[m][n])*(d[i][j] - d[m][n]));
					bsum += aa1*bb1*d[m][n];
					bguiyi += aa1*bb1;
				}
			}
			f[i][j] = bsum / bguiyi;
			gguiyi = 0.0, bguiyi = 0.0, gsum = 0.0, bsum = 0.0;
		}
	}
	//將濾波後的像素賦給新的圖像
	for (i = 0; i < nH; i++)
	{
		for (j = 0; j < nW; j++)
		{
			lpDst[i*nW + j] = (unsigned char)(f[i][j] + 0.5);
		}
	}

}

 

效果

 

 

 

 

 

以上三圖從上到下分別爲原圖,高斯模糊和雙邊濾波後的效果圖,雙邊濾波的保邊效果還是很明顯的。

版權聲明:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章