濾波總結

1.圖像與濾波的理解

參考博客:http://www.ruanyifeng.com/blog/2017/12/image-and-wave-filters.html

一、爲什麼圖像是波?

我們知道,圖像由像素組成。下圖是一張 400 x 400 的圖片,一共包含了 16 萬個像素點。

每個像素的顏色,可以用紅、綠、藍、透明度四個值描述,大小範圍都是0 ~ 255,比如黑色是[0, 0, 0, 255],白色是[255, 255, 255, 255]。通過 Canvas API 就可以拿到這些值。

如果把每一行所有像素(上例是400個)的紅、綠、藍的值,依次畫成三條曲線,就得到了下面的圖形。

可以看到,每條曲線都在不停的上下波動。有些區域的波動比較小,有些區域突然出現了大幅波動(比如 54 和 324 這兩點)。

對比一下圖像就能發現,曲線波動較大的地方,也是圖像出現突變的地方。

這說明波動與圖像是緊密關聯的。圖像本質上就是各種色彩波的疊加。

二、頻率

綜上所述,圖像就是色彩的波動:波動大,就是色彩急劇變化;波動小,就是色彩平滑過渡。因此,波的各種指標可以用來描述圖像。

頻率(frequency)是波動快慢的指標,單位時間內波動次數越多,頻率越高,反之越低。

上圖是函數sin(Θ)的圖形,在的週期內完成了一次波動,頻率就是1。

上圖是函數sin(2Θ)的圖形,在的週期內完成了兩次波動,頻率就是2。

所以,色彩劇烈變化的地方,就是圖像的高頻區域;色彩穩定平滑的地方,就是低頻區域。

三、濾波器

物理學對波的研究已經非常深入,提出了很多處理波的方法,其中就有濾波器(filter):過濾掉某些波,保留另一些波。

下面是兩種常見的濾波器 。

  • 低通濾波器(lowpass):減弱或阻隔高頻信號,保留低頻信號
  • 高通濾波器(highpass):減弱或阻隔低頻信號,保留高頻信號

下面是低通濾波的例子。

上圖中,藍線是原始的波形,綠線是低通濾波lowpass後的波形。可以看到,綠線的波動比藍線小很多,非常平滑。

下面是高通濾波的例子。

上圖中,黃線是原始的波形,藍線是高通濾波highpass後的波形。可以看到,黃線的三個波峯和兩個波谷(低頻波動),在藍線上都消失了,而黃線上那些密集的小幅波動(高頻波動),則是全部被藍線保留。

再看一個例子

上圖有三根曲線,黃線是高頻波動,紅線是低頻波動。它們可以合成爲一根曲線,就是綠線。

上圖中,綠線進行低通濾波和高通濾波後,得到兩根黑色的曲線,它們的波形跟原始的黃線和紅線是完全一致的。

四、圖像的濾波

瀏覽器實際上包含了濾波器的實現,因爲 Web Audio API 裏面定義了聲波的濾波。這意味着可以通過瀏覽器,將lowpasshighpass運用於圖像。

lowpass使得圖像的高頻區域變成低頻,即色彩變化劇烈的區域變得平滑,也就是出現模糊效果。

上圖中,紅線是原始的色彩曲線,藍線是低通濾波後的曲線。

highpass正好相反,過濾了低頻,只保留那些變化最快速最劇烈的區域,也就是圖像裏面的物體邊緣,所以常用於邊緣識別。

上圖中,紅線是原始的色彩曲線,藍線是高通濾波後的曲線。

下面這個網址,可以將濾波器拖到圖像上,產生過濾後的效果。

瀏覽器實現濾波的範例代碼,可以看這個倉庫

2.均值濾波

均值濾波計算模板內所有像素中的均值值,並用所計算出來的均值體改模板中心像素的灰度值
缺點:會使圖像變模糊,原因是它對所有的點都是同等對待,在將噪聲點分攤的同時,景物的邊界點也將被分攤。

3.中值濾波

中值濾波計算模板內所有像素中的中值,並用所計算出來的中值體改模板中心像素的灰度值,這種方法對噪聲不是那麼敏感,能夠較好的消除椒鹽噪聲,但是容易導致圖像的不連續性。
原因:噪聲(如椒鹽噪聲)的出現,使該點像素比周圍的像素亮(暗)許多。取模板中排在中間位置上的像素的灰度值替代待處理的值,就可以達到濾除噪聲的目的。

4.高斯濾波

參考博客:https://blog.csdn.net/lz0499/article/details/54015150

        數值圖像處理中,高斯濾波主要可以使用兩種方法實現。一種是離散化窗口滑窗卷積,另一種方法是通過傅里葉變化。在這我主要想說說第一種方法的高斯濾波。離散化窗口滑窗卷積的時,主要利用的是高斯核,高斯核一般是一個奇數的大小的高斯模板。常用的高斯模板有如下幾種形式:

       上圖所示是常用的兩種高斯模板, 左側是常用的3*3的高斯模板,右側是常用的5*5高斯模板。那麼,上述高斯模板中的參數是怎麼得到的呢?高斯模板中的參數是如何得到的!

       高斯模板中的參數是通過高斯函數計算出來的。計算高斯模板參數時,通過如下公式:

    x的平方和y的平方分別表示的是鄰域內其他像素與鄰域內中心像素的距離,Sigmma代表的是標準差。


    如上圖所示由二維高斯圖像可知,標準差越小,二維高斯圖像越窄小,平滑效果不明顯;標準差越大,而爲高斯圖像越矮寬,濾波效果比較明顯。

更詳細信息,可參考:https://blog.csdn.net/lz0499/article/details/54015150

5.雙邊濾波器濾波

參考本博客:雙邊濾波器
原理:雙邊濾波器是由Tomasi和Manduchi在1998年發明的一種各向異性濾波。它是一種非線性濾波,它同時到考慮圖像的空間鄰近度和像素值相似度(即空間域和值域),從而達到保邊去噪的目的,實現對高頻細節的保護,改善高斯濾波去噪後模糊邊緣的缺點。雙邊濾波器對輸入圖像進行局部加權平均得到輸出圖像f ̂的像素值:
f(x,y)=(i,j)D(x,y)g(x,y)w(x,y,i,j)((i,j)D(x,y)w(x,y,i,j))2 f (x,y)=\frac{∑_{(i,j)∈D_(x,y)}g(x,y)w(x,y,i,j)}{∑_{((i,j)∈D_(x,y)}w(x,y,i,j))} (2)
式中D_(x,y)表示中心點(x,y)的(2N+1)*(2N+1)的領域像素, f ̂(x,y)值依賴於領域像素值g(x,y)的加權平均。權重係數w(x,y,i,j)取決於空間域核(domain)和值域核(range)的乘積:
wd(x,y,i,j)=exp((xi)2+(yj)22σd2)3 w_d (x,y,i,j)=exp⁡(-\frac{(x-i)^2+(y-j)^2}{2σ_d^2 }) (3)
ws(x,y,i,j)=exp(g(x,y)g(i,j)22σs2)4 w_s (x,y,i,j)=exp⁡(-\frac{|g(x,y)-g(i,j)|^2}{2σ_s^2 }) (4)
因此,
w(x,y,i,j)=wd(x,y,i,j)ws(x,y,i,j)5 w(x,y,i,j)=w_d (x,y,i,j)*w_s (x,y,i,j) (5)

從式子(5)可以看出,雙邊濾波器的加權係數是空間鄰近度因子w_d和亮度相似因子w_s的非線性組合。前者隨着像素點與中心點之間歐幾里德距離的增加而減小,後者隨着像素亮度之差的增大而減小。在圖像變化平緩的區域,領域內亮度值相差不大,雙邊濾波器轉化爲高斯低通濾波器,在圖像變化劇烈的區域,領域內像素亮度值相差較大,濾波器利用邊緣點附近亮度值相近的像素點的亮度值平均替代原亮度值。因此,雙邊濾波器既平滑了圖像,又保持了圖像邊緣。
文獻1

雙邊濾波器受3個參數的控制:濾波器半寬N、參數σ_d和σ_s。N越大,平滑作用越強;σ_d和σ_s分別控制着空間鄰近度因子w_d和亮度相似度因子w_s的衰減程度。(參數σ_d越大,只要亮度值足夠相近,更遠的像素也會受到影響,這就是空間域作用衰減程度;參數σ_s越大,顏色相差越大,也將被平滑進來,就是值域的作用衰減程度。總的來說,sigma類似於高斯函數的標準差,權重函數越扁平,平滑效果越明顯)在實驗中,爲簡單起見,你可以設置σ_d和σ_s值相同,當sigma值很小時(<10),濾波器不會有多少作用效果;當sigma值很大時(>150),濾波器作用效果會變得非常明顯。

6.最小二乘濾波

參考文獻:https://wenku.baidu.com/view/2ddaed88cc22bcd126ff0c32
如圖 1所示 , 有 9個數據點被在左邊的括號包住 , 如果這些點均在一條曲線附近,則能近似地被所示的能描述這條曲線的方程所表示 , 然後就可以根據數值計算方法用具體的過程把所有的係數 (i )確定出來。將中間點的橫座標代回到方程中,得到圖中圓圈所表示的點 ,用這個點代替原來的點。這個過程中,獲得 的該點值 的大小是在最小二 乘法和這樣一組觀察數據點基礎上的最佳擬合。這 一 過程可以對有 9個數據點的每一組數重複進行 ,每進行一次就去掉最左邊的一個點然後加上最右邊的一 個點 , 一直到最右邊的區域都確定 出來。通常來 說 , 每一組 9個點確定的曲線係數都不同 。

現討論由Savtzky和Golay導出的方法。設一組 數據爲 (i ),i的取值爲 2m +1個連續的整值 , 即 i =一m, ⋯, 0, ⋯, m。現 構 造 一 個 n 階 多 項 式 (n≤2m +1)來擬合這一組數據 :
在這裏插入圖片描述

7.最佳陷波濾波器(頻率域)

還有帶阻濾波器、帶通濾波器等等
具體參考本博客:最佳陷波濾波器設計及實現

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