OpenCV 高斯濾波

2021-06-19 14:08:54 字數 1331 閱讀 8075

一、前言:

關於高斯濾波在我的前一篇文章《數字影象基本處理演算法》中有所談及那篇只是介紹了高斯濾波的應用,現在這一篇將著重簡介高斯濾波的原理和應用,一探個究竟!

二、啥是高斯濾波?好吃麼?

高斯濾波,說白了就是乙個函式來對輸入的訊號(其實這裡的訊號就是影象的畫素值)進行計算然後得出結果作為該訊號的值,只不過函式是高斯函式而已,就是這麼簡單。

那麼高斯函式又是何許人也?

答曰:不過乙個公式而已

其真人如下:

為什麼有兩個高斯函式呢?因為二維的高斯函式可以降為一維的,通過在水平和豎直方向對影象進行處理就相當於用乙個二維的高斯函式對影象進行處理,那麼為什麼要這樣呢?

答曰:速度,但是需要注意的是實際程式設計的時候是直接採用計算好的模板直接計算,方便快捷

那麼請問?高斯濾波好吃麼?

廢話,當然不好吃,有本事你吃吃看。^_^

不過呢,雖然不好吃,但是,它卻有著非常好的剔除雜訊的效果。

這個就是為什麼要用高斯濾波啦。它能夠讓我們獲得性噪比比較高的影象。

高等數學裡面有沒有看到過高斯函式的影象?

那個正態分佈的影象?

對,就是它,人家自己都說了它對去除服從正態分佈的雜訊很有效^_^

常用的零均值離散高斯濾波器函式就是長得這個樣子滴:

即g(x)=exp(-x^2/(2 sigma^2)

為什麼要用高斯函式進行濾波呢?

有一下幾點原因:

1.      高斯函式具有高斯函式是單值函式。因為高斯函式對誰都不偏袒影象的邊緣在**它可不知道,他只知道幹它的事情,所以它在濾波的時候並不偏袒誰,即高斯函式在各個方向的平滑程度是相同的。

2.      高斯函式具有旋轉不變的特性,主要是因為它在工作的時候是用用畫素鄰域的加權均值來代替該點的畫素值。

3.      高斯函式的付立葉變換頻譜是單瓣的,它能夠去除高頻訊號同時又保留有用的訊號!

4.      高斯函式說了它的引數sigma決定了你要的平滑程度sigma越大,平滑的就越厲害

5.      最後一點就是二維高斯函式卷積可以分兩步來進行,首先將影象與一維高斯函式進行卷積,然後將卷積結果與方向垂直的相同一維高斯函式卷積.因此,二維高斯濾波的計算量隨濾波模板寬度成線性增長而不是成平方增長。這樣是不是很快呢???

三、後記

另外呢?高斯濾波還有幾個兄弟濾波器,他們是中值濾波簡單濾波以及雙邊濾波,如果您有興趣呢,可以看看他們的兄弟們,不然他們會寂寞滴哈,^_^

OpenCV 高斯濾波實現

高斯濾波是一種線性平滑濾波,適用於消除高斯雜訊,廣泛應用於影象處理的減噪過程。通俗的講,高斯濾波就是對整幅影象進行加權平均的過程,每乙個畫素點的值,都由其本身和鄰域內的其他畫素值經過加權平均後得到。在影象處理中高斯濾波一般有兩種實現方式 一種是用離散化視窗滑窗卷積,另一種是通過傅利葉變換。最常見的就...

opencv高斯濾波原理

1 一維高斯分布 2 二維高斯分布 3 高斯濾波一般使用的 二維零均值 的高斯分布函式,通過高斯分布函式求出模板係數,例如乙個3 3的模板 以模板的中心位置為座標原點進行取樣,其中模板各個座標位置如下圖,x軸水平向右,y軸垂直向下,x,y 表示 4 將各個位置的座標代入二維零均值高斯分布函式,計算出...

opencv 輪廓高斯濾波平滑

乙個小測試的題目 在影象上點選,找到與點選處相鄰的顏色相近的點集合,對該點集合提取輪廓,對該點集合輪廓平滑處理,顯示處理結果。include include using namespace std using namespace cv method findregion 漫水填充 fullname ...