s1091402 作業3
題目敘述
離散傅立葉轉換 DFT 練習
撰寫傅利葉轉換程式(Forward Fourier Transform and Inverse Fourier Transform)將一張圖
像轉換至頻域後,將頻譜大小與相位角度各以灰階256 色圖像方式呈現出,再呈現還
原後圖像。
開發環境
Windows10、Spyder (Python 3.8)、OpenCV 4.7.0
說明
1、讀取圖像並轉為灰階
2、用getOptimalDFTSize得到最適合進行傅里葉變換的圖像大小,然後用copyMakeBorder進行padding,並轉成float32來計算
3、fp(x,y) × (−1)^(x+y) to center the Fourier transform
4、dft() 計算傅立葉轉換,然後用split()將虛數與實數分開
magnitude()計算幅值,並取log乘上20得到振幅
normalize() 標準化,讓圖像以灰階256 色圖像方式呈現,並轉成uint8型態(避免負數)
phase() 計算相位
並同上進行標準化。
idft() 計算還原後圖像
magnitude()計算幅值
並同上進行標準化。
IDFT
留言
張貼留言