1.作業說明:
請撰寫一個程式,讀取一張256色灰階圖像。
(1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現 出。
(2)對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
2.開發環境:
Windows 10 + Visual Studio 2019 + Open CV 4.5.5
3.實作方法:
頻譜圖、相位角圖:
1.輸入圖片名稱與格式
2.讀取灰階圖片
3.將圖片Padding
4. 先使用 getOptimalDFTSize()拓寬圖片
5. 使用copyMakeBorder()填充圖片
6.使用dft()做傅立葉轉換
7. 用split()分割出實數與虛數部分
8. 使用 magnitude()和 phase()做出未處理的頻譜圖和相位角圖
9. 將頻譜圖和相位角圖交換象限
10.將頻譜圖 +Scalar::all(1)
11.將頻譜圖代入log()和 normalize()
12.顯示頻譜圖
13.將相位角圖代入 normalize()
14. 顯示相位角圖
Gaussian low pass filter:
1.將讀入的圖片代入dft()
2. 做出Gaussian low pass filter ,d0設為2500
3.將GLPF交換象限
4.將傅立葉轉換後的圖與GLPF帶入 multiply()
5.將相乘的圖做idft()
6.顯示處理後的圖
沒有留言:
張貼留言