s1093352 作業3
離散傅立葉轉換 DFT 練習
- 撰寫傅利葉轉換程式(Forward Fourier Transform and Inverse Fourier Transform)將一張圖像轉換至頻域後,將頻譜大小與相位角度各以灰階256 色圖像方式呈現出,再呈現還原後圖像。
開發環境: Window 10 + Visual Studio 2019 + OpenCV 3.4.1
- imread() 讀取灰階圖片
- getOptimalDFTSize() 用來取得最佳的圖片尺寸
- copyMakeBorder() 來把padding 的部分補0
- planes() 多通道來儲存實數和虛數部分
- merge() 來合併planes
- dft() 來執行傅立葉轉換
- split() 來分離planes的實數和虛數部分
- magnitude() 來取得頻譜圖
- phase() 來取得相位圖
- log() 計算每組數值絕對值的自然對數來顯示傅立葉轉換的值
- 顯示頻譜圖之前先做shifting來重新排列傅立葉轉換圖片的四個象限,也就是原圖乘以-1^(x+y),來確保低頻在圖像中心 (amplitude是頻譜圖)
- 並normalize() 歸一化來把值設定在0~1之間
- idft() 來逆傅立葉轉換回去圖片




留言
張貼留言