高斯濾波
轉載https://blog.csdn.net/lvquanye9483/article/details/81592574
高斯濾波的含義:高斯濾波就是對整幅圖像進行加權平均的過程,每一個像素點的值,都由其本身和鄰域內的其他像素值經過加權平均后得到。
高斯濾波的作用:高斯濾波是一種線性平滑濾波,適用於消除高斯噪聲,廣泛應用於圖像處理的減噪過程。
高斯濾波函數
一維高斯分布
二維高斯分布
高斯核
理論上,高斯分布在所有定義域上都有非負值,這就需要一個無限大的卷積核。實際上,僅需要取均值周圍3倍標准差內的值,以外部份直接去掉即可。如下圖為一個標准差為1.0的整數值高斯核。
高斯濾波的卷積運算
假設有一個卷積核h,就一般為3*3的矩陣:
有一個待處理矩陣x:
h*x的計算過程分為三步
第一步,將卷積核翻轉180°,也就是成為了
第二步,將卷積核h的中心對准x的第一個元素,然后對應元素相乘后相加,沒有元素的地方補0。
這樣結果Y中的第一個元素值Y11=1*0+2*0+1*0+0*0+0*1+0*2+-1*0+-2*5+-1*6=-16
第三步每個元素都像這樣計算出來就可以得到一個輸出矩陣,就是卷積結果
最后結果
高斯濾波的性質
高斯函數具有五個重要的性質,這些性質使得它在早期圖像處理中特別有用.這些性質表明,高斯平滑濾波器無論在空間域還是在頻率域都是十分有效的低通濾波器,且在實際圖像處理中得到了工程人員的有效使用.高斯函數具有五個十分重要的性質,它們是:
(1)二維高斯函數具有旋轉對稱性,即濾波器在各個方向上的平滑程度是相同的.一般來說,一幅圖像的邊緣方向是事先不知道的,因此,在濾波前是無法確定一個方向上比另一方向上需要更多的平滑.旋轉對稱性意味着高斯平滑濾波器在后續邊緣檢測中不會偏向任一方向.
(2)高斯函數是單值函數.這表明,高斯濾波器用像素鄰域的加權均值來代替該點的像素值,而每一鄰域像素點權值是隨該點與中心點的距離單調增減的.這一性質是很重要的,因為邊緣是一種圖像局部特征,如果平滑運算對離算子中心很遠的像素點仍然有很大作用,則平滑運算會使圖像失真.
(3)高斯函數的傅立葉變換頻譜是單瓣的.正如下面所示,這一性質是高斯函數付立葉變換等於高斯函數本身這一事實的直接推論.圖像常被不希望的高頻信號所污染(噪聲和細紋理).而所希望的圖像特征(如邊緣),既含有低頻分量,又含有高頻分量.高斯函數付立葉變換的單瓣意味着平滑圖像不會被不需要的高頻信號所污染,同時保留了大部分所需信號.
(4)高斯濾波器寬度(決定着平滑程度)是由參數σ表征的,而且σ和平滑程度的關系是非常簡單的.σ越大,高斯濾波器的頻帶就越寬,平滑程度就越好.通過調節平滑程度參數σ,可在圖像特征過分模糊(過平滑)與平滑圖像中由於噪聲和細紋理所引起的過多的不希望突變量(欠平滑)之間取得折衷.
(5)由於高斯函數的可分離性,較大尺寸的高斯濾波器可以得以有效地實現.二維高斯函數卷積可以分兩步來進行,首先將圖像與一維高斯函數進行卷積,然后將卷積結果與方向垂直的相同一維高斯函數卷積.因此,二維高斯濾波的計算量隨濾波模板寬度成線性增長而不是成平方增長.
高斯濾波的應用
高斯濾波后圖像被平滑的程度取決於標准差。它的輸出是領域像素的加權平均,同時離中心越近的像素權重越高。因此,相對於均值濾波(mean filter)它的平滑效果更柔和,而且邊緣保留的也更好。
高斯濾波被用作為平滑濾波器的本質原因是因為它是一個低通濾波器(讓某一頻率以下的信號分量通過,而對該頻率以上的信號分量大大抑制)
1 clc 2 clear 3 clear all 4 close all 5 %%%對圖像做均值濾波處理 6 img = imread('1.png'); 7 figure(1) 8 subplot(1,2,1),imshow(img),title('原始圖像') 9 %%%將彩色圖像轉灰度圖像 10 img_gray = rgb2gray(img); 11 subplot(1,2,2),imshow(img_gray),title('RGB-GRAY灰度圖像') 12 %%%加入椒鹽噪聲 13 figure(2) 14 img_salt=imnoise(img_gray,'salt & pepper',0.05); 15 subplot(2,2,1),imshow(img_salt),title('加入椒鹽噪聲后') 16 %%%系統自帶的中值濾波 系統自帶的中值濾波輸入參數為2維圖像 17 img_mid=medfilt2(img_salt,[3 3]); 18 subplot(2,2,2),imshow(img_mid),title('對噪聲圖像中值濾波后'); 19 %%%系統自帶的均值濾波 系統自帶的均值濾波輸入參數為2維圖像 20 img_mid=filter2(fspecial('average',3),img_salt)/255; 21 subplot(2,2,3),imshow(img_mid),title('對噪聲圖像均值濾波后'); 22 %%%系統自帶的高斯濾波 系統自帶的均值濾波輸入參數為2維圖像 23 sigma = 1; %高斯正態分布標准差 24 gausFilter = fspecial('gaussian',[3 3],sigma); 25 img_gaussian = imfilter(img_salt,gausFilter,'replicate'); 26 subplot(2,2,4),imshow(img_gaussian),title('對噪聲圖像高斯濾波后'); 27 28 %%%加入高斯噪聲 29 figure(3) 30 img_salt=imnoise(img_gray,'gaussian',0.05); 31 subplot(2,2,1),imshow(img_salt),title('加入椒鹽噪聲后') 32 %%%系統自帶的中值濾波 系統自帶的中值濾波輸入參數為2維圖像 33 img_mid=medfilt2(img_salt,[3 3]); 34 subplot(2,2,2),imshow(img_mid),title('對噪聲圖像中值濾波后'); 35 %%%系統自帶的均值濾波 系統自帶的均值濾波輸入參數為2維圖像 36 img_mid=filter2(fspecial('average',3),img_salt)/255; 37 subplot(2,2,3),imshow(img_mid),title('對噪聲圖像均值濾波后'); 38 %%%系統自帶的高斯濾波 系統自帶的均值濾波輸入參數為2維圖像 39 sigma = 1; %高斯正態分布標准差 40 gausFilter = fspecial('gaussian',[3 3],sigma); 41 img_gaussian = imfilter(img_salt,gausFilter,'replicate'); 42 subplot(2,2,4),imshow(img_gaussian),title('對噪聲圖像高斯濾波后'); 43 44 wq = 1;