【OpenCV入門教程之八】線性鄰域濾波專場:方框濾波、均值濾波與高斯濾波
目錄
- 平滑(模糊)處理
- 圖像濾波與濾波器
- 區(qū)分濾波和模糊
- 鄰域算子與線性鄰域濾波
1. 平滑(模糊)處理
- 平滑處理(smoothing)也稱 模糊處理(bluring),是一項簡單且使用頻率很高的圖像處理方法。
- 平滑處理的用途有很多,最常見的是用來 減少圖像上的噪點或者失真。
- 在涉及到 降低圖像分辨率 時,平滑處理是非常好用的方法。
2. 圖像濾波與濾波器
2.1. 圖像濾波
首先我們看一下圖像濾波的概念。
圖像濾波,即在 盡量保留圖像細節(jié)特征的條件下對目標(biāo)圖像的噪聲進行抑制,是圖像 預(yù)處理中不可缺少的操作,其處理效果的好壞將直接影響到后續(xù)圖像處理和分析的有效性和可靠性。
消除圖像中的噪聲成分叫作 圖像的平滑化或濾波操作。
信號或圖像的能量大部分集中在幅度譜的低頻和中頻段是很常見的,而在較高頻段,感興趣的信息經(jīng)常被噪聲淹沒。因此一個能降低高頻成分幅度的濾波器就能夠減弱噪聲的影響。
圖像濾波的目的有兩個:
- 抽出對象的特征作為圖像識別的特征模式;
- 為適應(yīng)圖像處理的要求,消除圖像數(shù)字化時所混入的噪聲。
而對濾波處理的要求也有兩條:
- 一是不能損壞圖像的輪廓及邊緣等重要信息;
- 二是使圖像清晰視覺效果好。
平滑濾波是 低頻增強 的 空間域 濾波技術(shù)。目的有兩類:
- 一類是模糊;
- 另一類是消除噪音。
空間域的平滑濾波一般采用簡單平均法進行,就是求鄰近像元點的平均亮度值。
鄰域的大小與平滑的效果直接相關(guān),鄰域越大平滑的效果越好,但鄰域過大,平滑會使邊緣信息損失的越大,從而使輸出的圖像變得模糊,因此需合理選擇鄰域的大小。
2.2. 濾波器
關(guān)于濾波器,一種形象的比喻法是:
我們可以把濾波器想象成一個包含加權(quán)系數(shù)的窗口,當(dāng)使用這個濾波器平滑處理圖像時,就把這個窗口放到圖像之上,透過這個窗口來看我們得到的圖像。
濾波器的種類有很多, 在新版本的OpenCV中,提供了如下五種常用的圖像平滑處理操作方法,且他們分別被封裝在單獨的函數(shù)中,使用起來非常方便:
(1)線性濾波
- 方框濾波——boxblur函數(shù)
- 均值濾波(鄰域平均濾波)——blur函數(shù)
- 高斯濾波——GaussianBlur函數(shù)
(2)非線性濾波
- 中值濾波——medianBlur函數(shù)
- 雙邊濾波——bilateralFilter函數(shù)
2.3. 線性濾波器
線性濾波器:線性濾波器經(jīng)常用于剔除輸入信號中不想要的頻率 或者 從許多頻率中選擇一個想要的頻率。
幾種常見的線性濾波器:
| 濾波器 | 特征 |
|---|---|
| 低通濾波器 | 允許低頻率通過 |
| 高通濾波器 | 允許高頻率通過 |
| 帶通濾波器 | 允許一定范圍頻率通過 |
| 帶阻濾波器 | 阻止一定范圍頻率通過并且允許其它頻率通過 |
| 全通濾波器 | 允許所有頻率通過、僅僅改變相位關(guān)系 |
| 陷波濾波器 | 阻止一個狹窄頻率范圍通過的特殊帶阻濾波器(Band-stop filter) |
3. 區(qū)分濾波和模糊
以經(jīng)常用的高斯濾波為例。
濾波可分低通濾波和高通濾波兩種。
高斯濾波是指用高斯函數(shù)作為濾波函數(shù)的濾波操作
至于是不是模糊,要看是高斯低通還是高斯高通,低通就是模糊,高通就是銳化。
- 高斯濾波 是指用高斯函數(shù)作為濾波函數(shù)的濾波操作。
- 高斯模糊 就是高斯低通濾波(在高斯濾波基礎(chǔ)上加了低通)
4. 鄰域算子與線性鄰域濾波
鄰域算子(局部算子)是利用給定像素周圍的像素值的決定此像素的最終輸出值的一種算子。而線性鄰域濾波是一種常用的鄰域算子,像素的輸出值取決于輸入像素的加權(quán)和,具體過程如下圖。
鄰域算子除了用于局部色調(diào)調(diào)整以外,還可以用于 圖像濾波,實現(xiàn)圖像的平滑(低通)和銳化(高通),圖像邊緣增強或者圖像噪聲的去除。

圖注:鄰域濾波(卷積):左邊圖像與中間圖像的卷積產(chǎn)生右邊圖像。目標(biāo)圖像中藍色標(biāo)記的像素是利用原圖像中紅色標(biāo)記的像素計算得到的。
線性濾波處理的輸出像素值g(i, j) 是輸入像素值f(i + k, j + l)的 加權(quán)和 :

簡寫為:

其中 f 表示輸入像素值,h 表示加權(quán)系數(shù)“核”,g 表示輸出像素值
在新版本的OpenCV中,提供了如下三種常用的線性濾波操作,他們分別被封裝在單獨的函數(shù)中,使用起來非常方便:
- 方框濾波——boxblur函數(shù)
- 均值濾波——blur函數(shù)
- 高斯濾波——GaussianBlur函數(shù)