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() 顯示視窗圖像


四、執行結果












留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6