s1083513 作業3

 一、作業主題: 離散傅立葉轉換 DFT 練習

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

 

二、開發環境

Windows 10 / Visual Studio 2022 C++ / OpenCV 4.7.0

 

三、實作方法

1.  imread() 讀取灰階圖像

2.  擴展圖像到合適尺寸,使DFT轉換得到更高的處理效率

      getOptimalDFTSize()返回最佳尺寸

copyMakeBorder()添加邊緣像素

3.  分配傅立葉轉換結果的存儲空間:

merge() 合併建立複數(實數/虛數部分)矩陣

4.  dft() 進行Forward Fourier Transform

idft()進行Inverse Fourier Transform

split() 拆分實部及虛部,將複數轉換爲幅度

magnitude()生成頻譜圖

phase() 生成相位圖

5.  log() 將幅度進行對數縮小

6.  重新分佈幅度圖象限位置

copyTo() 調換對角區域

7.  normalize() 將幅度歸一化到可顯示範圍

8.  imshow() 顯示視窗圖像


四、執行結果












留言

這個網誌中的熱門文章

s1091514 hw4

rzwang Homework #1

s1093350 Homework #2