1. 程式人生 > >Matlab頻域濾波一些總結

Matlab頻域濾波一些總結

首先想到,在頻率濾波我們需要什麼呢,一個頻域影象,一個濾波模板,將它們點乘就好了。然後就是細節問題了。

1. 在頻域濾波,由於是點乘,所以濾波模板矩陣和影象矩陣必須尺寸一樣。

2. 因為尺寸一樣,它們的原點必須要對齊。

3. 因在進行離散傅立葉變換後,在頻域點乘,相當於在時域卷積,但是這個時候實際上是對時域週期矩陣進行卷積。

    (而直接在時域卷積,matlab預設是在邊界補0)

好啦,問題來了。

1. 如何得到一個尺寸和影象大小一樣的濾波模板

2. 它們的原點關係是怎麼樣的

3. 如何避免時域和頻域由於傅立葉變換週期性導致的不一樣

是這樣解決的

1. Matlab freqz2()這個函式可以自動得到一個指定尺寸的 對應於時域的頻域模板(原理我還沒搞清楚)

2. 影象經過傅立葉變換後,它的原點在左上角。而模板經過freqz2後,原點在中心,所以只要平移其中的一個就好了

3. 在對原影象進行傅立葉變換之前,按照一定規則補0就好了