s1081523 作業4
作業說明:
離散傅立葉轉換 DFT練習
請撰寫一個程式,讀取一張256色灰階圖像。
(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。
(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
開發環境:
· Windows 10
· Visual Studio
2019
· OpenCV 4.5.5
· C++
實作方法:
1.
先用imread(“路徑”, IMREAD_GRAYSCALE)將圖片以灰階讀取進來。
2.
用getOptimalDFTSize函數將長寬延伸到最佳尺寸,邊界用0填充。此步驟是為了提高離散傅立葉變換的運算速度。
接著用copyMakeBorder填充圖像邊界。
3.
為傅立葉變換結果分配儲存空間,因為轉換後有實部虛部,分別存到planes[0]和planes[1] 並將planes[0], planes[1]合併成多通道的數組complexI
4.
進行傅立葉變換
將複數轉為頻譜大小,並將多通道的complexI分離成單通道
5. 因為變換後的幅度範圍大,因此進行對數尺度縮放
剪切和重新分布頻譜圖象限
6.
歸依化,將幅度控制在可顯示範圍[0, 1]之間
原圖
顯示頻譜值
7.
呼叫自訂義函數phaseSpectrum,求出相位角度並回傳
顯示結果
8.
呼叫GaussianBlur函數,並且給訂參數
顯示結果
沒有留言:
張貼留言