s1091647 作業3

 作業三 傅立葉轉換

功能

撰寫傅利葉轉換程式(Forward Fourier Transform and Inverse Fourier Transform)將一張圖像轉換至頻域後,將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出,再呈現還 原後圖像。

開發環境

  • Win10
  • C++
  • Open CV 4.6.0
  • VS 2022

程式實作

頻譜大小:

1.先用imread灰階模式讀入圖片
2.利用getOptimalDFTSize()取得DFT的最佳尺寸,並用copyMakeBorder()將邊緣補0
3.merge()合併通道,形成一個2通道的複數影像
4.dft() DFT轉換
5.split() 分離通道
6.magnitude()計算幅值圖像並用log取對數,再取log先加一防止log0出現
7.將圖像重新排列
8.normalize()正規化圖像
9.將正規化的圖像轉成8位元後輸出

相位角度:

1.phase()取相位
2.normalize()正規化圖像
3.將正規化的圖像轉成8位元後輸出

逆傅立葉轉換:

1.idft()進行反傅立葉轉換
2.split() 分離通道,並用magnitude()計算幅值圖像
3.normalize()正規化到0~255以顯示,最後轉換成8位元後輸出

執行結果


頻譜大小


相位角度


逆傅立葉轉換



留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6