opencv-圖像平滑處理

一.原理

平滑也稱爲模糊,平滑處理時需要用到一個濾波器,最常用的濾波器是線性濾波器,線性濾波器處理的輸出像素值 (i.e. g(i,j)) 是輸入像素值 (i.e. f(i+k,j+l))的加權和 ;

                                                                                                                                                                                                                                    g(i,j) = \sum_{k,l} f(i+k, j+l) h(k,l)

h(k,l)稱爲核,僅僅是一個加權係數,濾波器可以簡單的理解爲一個包含加權係數的窗口,當使用這個濾波器平滑處理圖像時,將讓這個窗口滑過圖像。

我主要介紹幾種常見的濾波器。

1.歸一化濾波器

最簡單的濾波器,輸出像素值是窗口內像素值的均值(所有像素加權數相等)

  • K = \dfrac{1}{K_{width} \cdot K_{height}} \begin{bmatrix}
    1 & 1 & 1 & ... & 1 \\
    1 & 1 & 1 & ... & 1 \\
    . & . & . & ... & 1 \\
    . & . & . & ... & 1 \\
    1 & 1 & 1 & ... & 1
   \end{bmatrix}


2.高斯濾波器
最有用的濾波器(不是最快的),高斯濾波器是將輸入數組的每一個像素點與高斯內核卷積,將卷積和作爲輸出像素值。

../../../../_images/Smoothing_Tutorial_theory_gaussian_0.jpg

2維高斯函數可以表達爲 :

G_{0}(x, y) = A  e^{ \dfrac{ -(x - \mu_{x})^{2} }{ 2\sigma^{2}_{x} } +  \dfrac{ -(y - \mu_{y})^{2} }{ 2\sigma^{2}_{y} } }

其中 \mu 爲均值 (峯值對應位置), \sigma 代表標準差 (變量 x 和 變量 y 各有一個均值,也各有一個標準差)

 

3.中值濾波器

中值濾波器將圖像的每一個像素用領域(以當前像素爲中心的正方形區域)像素的中值代替

 

4.雙邊濾波器

目前我們瞭解的濾波器都是爲了 平滑 圖像, 問題是有些時候這些濾波器不僅僅削弱了噪聲, 連帶着把邊緣也給磨掉了。 爲避免這樣的情形 (至少在一定程度上 ), 我們可以使用雙邊濾波。

類似於高斯濾波器,雙邊濾波器也給每一個鄰域像素分配一個加權係數。 這些加權係數包含兩個部分, 第一部分加權方式與高斯濾波一樣,第二部分的權重則取決於該鄰域像素與當前像素的灰度差值。

 

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