s1091524 作業3

 一、題目說明:

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





二、開發環境:

  • Windows 10
  • Visual Studio 2022
  • C++
  • OpenCV 4.6.0

三、程式說明:

  • imread():讀檔,設定成IMREAD_GRAYSCALE讀成灰階圖
  • getOptimalDFTSize():獲取做dft適當的image size
  • copyMakeBorder():對目標圖像做padding,並且把多餘的部分補0
  • planes:2個通道的Mat array,用來存放dft結果的實部和虛部,並將圖像轉成浮點型
  • merge():合併兩個通道
  • dft():進行傅立葉轉換
  • split():將實部和虛部分開儲存
  • magnitude():計算頻譜圖
    • log():對頻譜圖取對數
    • 輸出前對對調頻譜圖的象限,以確保低頻在中心
    • normalize():對圖做歸一化,把值保持在0~1之間
  • phase():計算相位圖
    • normalize():對圖做歸一化,把值保持在0~255之間
  • idft():做反向傅立葉轉換
    • split():將實部和虛部分開儲存
    • magnitude():合併成一張圖
    • normalize():對圖做歸一化,把值保持在0~1之間


四、參考資料:

https://blog.51cto.com/u_15696592/5439106


留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6