1. 程式人生 > >圖像的高斯平滑濾波

圖像的高斯平滑濾波

itl 等於 生成 二維 出了 說明 權重 實現 mes

1:高斯平滑與濾波的作用

通過高斯平滑使整個圖片過渡均勻平滑,去除細節,過濾掉噪聲。

2:高斯平滑濾波器簡介

高斯平滑濾波器被使用去模糊圖像,和均值濾波器差不多,但是和均值濾波器不一樣的地方就是核不同。均值濾波器的核每一個值都是相等,而高斯平滑濾波器的核內的數卻是呈現高斯分布的。

對於二維高斯分布:

技術分享圖片

高斯函數具有5個重要性質:

(1)二維高斯函數具有旋轉對稱性, (2)高斯函數是單值函數。這表明,高斯濾波器用像素鄰域的加權均值來代替該點的像素值,而每一鄰域像素點的權值是隨著該點與中心點距離單調遞減的。 (3)高斯函數的傅立葉變換頻譜是單瓣的。 (4)高斯濾波器的寬度(決定著平滑程度)是由參數σ表征的,而且σ和平滑程度的關系是非常簡單的。σ越大,高斯濾波器的頻帶就越寬,平滑程度就越好。 (5)可分離性

它的分布圖如下:

技術分享圖片

作為高斯平滑濾波器的核就應該呈現出上圖的布局,例如:

技術分享圖片

是一個5*5的模版

對於高斯函數參數σ值越大,則模分布圖越扁平,模版越大。

上圖分布凸顯出了高斯該有的特點,因此,一般而言,高斯平滑濾波器要優於均值濾波器。

3:函數實現

3.1二維高斯函數

1 X = -50 : 1 :50;
2 Y = -50 : 1: 50;
3 sigma=50;
4 [X,Y]=meshgrid(X,Y);
5 W=exp(-(X.^2+Y.^2)/sigma.^2);
6 Z=W/2*pi*sigma.^2
7 mesh(X,Y,Z);
8 title(權重分布圖);

技術分享圖片

3.2高斯濾波

 1 im=imread(D:\a2.jpg);
 2 imshow(im,[]);//1
 3 title(原圖);
 4 J=imnoise(im,gaussian);//加上高斯噪聲
 5 figure
 6 imshow(J,[]);
 7 title(加高斯噪聲圖);
 8 f1=fspecial(gaussian,[3 3],0.5);//2生成高斯模版
 9 img_smooth1=imfilter(J,f1);//3濾波
10 figure
11 subplot 221
12 imshow(img_smooth1,[]);
13 title(0.5); 14 15 f2=fspecial(gaussian,[3 3],1); 16 img_smooth2=imfilter(J,f2); 17 subplot 222 18 imshow(img_smooth2,[]); 19 title(1); 20 21 f3=fspecial(gaussian,[3 3],2); 22 img_smooth3=imfilter(J,f3); 23 subplot 223 24 imshow(img_smooth3,[]); 25 title(2); 26 27 f4=fspecial(gaussian,[3 3],4); 28 img_smooth4=imfilter(J,f4); 29 subplot 224 30 imshow(img_smooth4,[]); 31 title(4); 32 33 f5=fspecial(gaussian,[3 3],8); 34 img_smooth5=imfilter(J,f5); 35 figure 36 subplot 121 37 imshow(img_smooth5,[]); 38 title(8); 39 40 f6=fspecial(gaussian,[3 3],10); 41 img_smooth6=imfilter(J,f6); 42 subplot 122 43 imshow(img_smooth6,[]); 44 title(10);

運行結果如下

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

由實驗結果可知,隨著σ值的增大,噪聲濾除的越幹凈,但同時,圖像也變得越模糊,輪廓不清晰。當σ增加到一定的程度時,濾波效果幾乎沒有變化,所以要選取合適的σ值。

4:函數介紹

註釋1

語法:imshow ( f, G)
imshow (f, [low high])
imshow (f, [ ])
說明:G是顯示該圖像的灰度級數;
小於或等於low的值都顯示為黑色,大於或等於high的值都顯示為白色。
[ ]自動將變量low設置為f的最小值,將high設置為f的最大值

註釋2

Fspecial函數用於創建預定義的濾波算子,其語法格式為:
h = fspecial(type)
h = fspecial(type,parameters,sigma)
參數type制定算子類型,parameters指定相應的參數,具體格式為:
type=‘average‘,為均值濾波,參數為n,代表模版尺寸,用向量表示,默認值為[3,3]。
type= ‘gaussian‘,為高斯低通濾波器,參數有兩個,n表示模版尺寸,默認值為[3,3],sigma表示濾波器的標準差,

註釋3

imfilter(J,f1)

J為待處理的圖像,f為高斯模版。

圖像的高斯平滑濾波