s1093336 作業3

  

一、作業說明

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





 二、開發環境

OS: Windows 11 64bit
Editor: Visual Studio 2019
Language: C++
Package: OpenCV-4.5.0 

 三、程式功能

  1. 執行方式
    • 直接執行本程式
      執行設定

  2. 查看執行結果
    • Magnitude視窗為頻譜圖的結果。
    • Phase視窗為相位圖的結果。
    • Recover視窗為DFT後做IDFT的結果。


      Magnitude

      Phase

      Recover

 四、實作過程

  1. 整張圖像轉化為灰階。
  2. 用getOptimalDFTSize取得最佳的DFTSize數值為2次方。
  3. 用copyMakeBorder將圖片不足最佳化的邊緣處填上0。
  4. 建立雙通道矩陣plans儲存DFT後虛部與實部。
  5. plotMagnitude
    1. 用split將虛實部分別存至plans。
    2. 用magnitude將DFT後的結果轉換成振幅值。
    3. 將圖片分成q0、q1、q2、q3。
    4. swap(q0,q3) / swap(q1,q2)。
    5. normalize
    6. output image
  6. plotPhase
    1. 用split將虛實部分別存至plans。
    2. 歷遍對虛實做arctan。
    3. swap(q0,q3) / swap(q1,q2)。
    4. normalize
    5. output image
  7. Recover
    1. 直接進行IDFT。
    2. normalize
    3. output image




    留言

    這個網誌中的熱門文章

    rzwang Homework #1

    s1093350 Homework #2

    s1061637 作業6