1. 程式人生 > >數字影象處理筆記——頻域濾波、取樣和頻譜混疊( Frequency domain filtering; sampling and aliasing)

數字影象處理筆記——頻域濾波、取樣和頻譜混疊( Frequency domain filtering; sampling and aliasing)

頻域濾波

頻域濾波就是將訊號先做傅立葉變換再與濾波器頻域響應相乘,最後再做傅立葉反變換得到

低通濾波器

讓我們先來看看理想低通濾波器,理想低通濾波器的頻率響應是一箇中間是1,周圍是0的正方形或圓形,而在時域上是sinc函式,,我們看經過低通濾波器後的影象變得模糊了,但是會發現圖中多了很多波紋,原因就是理想低通濾波器在時域上的影象並不是理想的,而是有旁瓣。我們知道頻域縮窄對於時域展寬,因此如果理想濾波器的通帶很小,影象會變得更模糊,相應的也會有很多波紋;因此我們可以通過增大通帶的方式來減小時域的波動。

                                                   時域

                                                                  頻域

                                                 濾波後圖像的紋波現象

除了以上提到的方法,我們還可以選擇更簡單的時域函式,例如之前部落格提到的ones(3)/9濾波器,我們來看看它的頻域相應,我們看到它在頻域上出現了波動。

由此,我們可以在時域波動和時域波動上找到一個平衡點:也就是高斯濾波器。它在時域和頻域上都滿足高斯分佈

高通濾波器

高通濾波器也是類似,我們可以用全通濾波器減去低通濾波器得到

對於高通濾波器處理過的影象,我們得到的是影象的邊緣,也就是高頻的部分,同樣由於濾波器時域上的波動,我們可以看到影象中存在波紋

我們如果分析一下之前提到的拉普拉斯運算元,並對它做傅立葉變換,我們可以很容易得到它的頻率響應,也就是一個拋物面

 

取樣和頻譜混疊

與一維情況類似,對於一幅影象我們也需要滿足奈切斯特取樣定理,不然的話會出現頻譜混疊導致失真。舉一個例子就是如下的棋盤,如果我們用每個方塊取樣一次的方式進行取樣那將不會產生失真,如果每兩個方塊取樣一次那我們將只能得到黑色,白色的資訊就完全丟失了

抗鋸齒

影象中鋸齒現象的出現就是一個取樣點過少的例子,但我們抗鋸齒的方法並不是對影象進行重新取樣,事實上我們在用相機拍攝的情況下采樣率往往已經固定了(CCD之間的間隔),而取樣率很多時候是我們無法修改的,因此我們能做的是對一副影象進行模糊處理後再下采樣來解決解決這個問題

如果我們從頻域上來看就是個加窗的過程,這樣雖然會丟失一部分資訊,但是不會產生頻譜混疊現象

舉個例子就是我們對影象每四個點進行一次取樣,我們可以看到本來平行的條紋變得不再平行,原因就是產生了頻譜混疊

如果我們先對影象進行模糊處理(低通濾波)後再下采樣就不會產生這個問題了,但影象也丟失了很多細節

在遊戲中我們經常看到的幾倍抗鋸齒用的是什麼技術呢?實際就是我們先生成所需影象N倍大(N倍抗鋸齒)的影象,然後取N×N方塊內的平均值(低通濾波)作為低解析度影象的值。如果我們從頻域上理解這個過程,現實生活中所有的影象其實都是連續的,但是我們只能獲取到離散的點,因此這是一個取樣的過程,這個過程中必定產生頻譜的混疊,而混疊的多少取決於取樣率,因此我們可以先提高取樣率,即生成一幅解析度更高的影象來減少混疊,再通過低通濾波器來控制通帶,最後再下采樣將頻譜展寬,得到我們想要的解析度,由於我們剛才通過了低通濾波器,因此不會產生混疊現象

最後我們來看看摩爾紋,摩爾紋就是我們用手機相機對著電腦螢幕的時候會產生的紋路,原因是相機的感光元件和顯示器相互影響產生的。我們把下圖的豎直的格子看做感光元件,感光點在豎線交叉處,斜的格子看做顯示器。那麼當二者交叉的時候我們會發現有的點落在空白處(即顯示器亮的位置),有的點落在線上(顯示器暗的位置),這樣一來在空間上就會出現有規律的交叉條紋了。而從頻域上看這就是由於取樣率低導致的頻譜混疊的結果。上面那幅豎直條紋變成特殊的花紋實際上也是摩爾紋的例子