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之間
留言
張貼留言