2014年5月5日 星期一

DFT & Gaussian low pass filter

此次實做對圖片的DFT與IDFT
並分別在frequency domain 與 spatial domain上實做Gaussian low pass filter

流程為:

1.  輸入一張M*N的圖 f(x,y)

2.  對該圖做zero-padding,pad成 2M*2N 大小的圖 fp(u,v) (原圖保持在左上方)

3.  為了頻譜可以置中,將fp(u,v)奇數點乘上(-1)

4.  對fp(u,v)做DFT得到F(u,v),
                                  以spectrum方式表達: sqrt ( | R * R + I * I  | ),R為實部、I為虛部。
                                  以phase angle方式表達:  arctan( I / R ) ,R為實部、I為虛部。


5.  計算D(u,v)與H(u,v)
P=2M , Q=2N  (中心點)

D0可設定

6.  計算 F(u,v) * H(u,v) 然後對結果做IDFT 所得即為Gaussian low pass filter在頻域作用後的結果。


7.  針對spatial domain 的 Gaussian low pass filter 先以下列公式做出Gaussian mask
      之後再以此mask對原圖做Convolution




以 128*128 的lena做實驗



照上述流程,做DFT後的結果。




                     以phase angle表示



以frequency spectrum表示 ( 有經過log處理,使圖片明亮。公式 : log ( 1+  sqrt ( | R * R + I * I  | )  ) )




對頻域做gaussian filter




                                    原圖                         D0 = 50                     D0=20



對空間域做gaussian filter


                                            原圖             mask大小:3*3       mask大小:5*5
                                                               σx,σy都為1.414      σx,σy都為3