作業說明:
(1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。
(2)對圖像利用Gaussian
Low-Pass filter處理,輸出平滑後圖像。
開發環境:
Windows 10 + Visual Studio 2019 + OpenCV 4.5.0 + C++
實作方法:
1.
輸入圖片路徑,以灰階模式讀取圖片,輸出(Original)
2.
對圖片padding成最佳的尺寸(2倍),避免混疊,擴充影像邊界,輸出(padding)
3.
裁剪奇數行或列
4.
分配存儲空間(實部和虛部),離散傅立葉,split複數轉換
5.
重新排列,交換象限
6.
實部/虛部與濾波器相乘後合併,G(u,v)=F(u,v)H(u,v)
7.
計算二維向量的幅值,轉換log,求相位
8.
歸一化後輸出(Phase、Spectrum)
9.
反傅立葉,計算平滑圖像後輸出(Low-Pass_ex)
10. 將平滑圖像還原成原始大小輸出(Low-Pass)
執行結果:
 |
Original & Padding |
 |
Spectrum |
 |
Phase |
 |
Low-Pass_ex & Low-Pass |
沒有留言:
張貼留言