作業說明:
請撰寫一個程式,讀取一張256色灰階圖像。
(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。
(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
開發環境:
Windows 10
Visual studio2022
Opencv-4.5.0
C++
實作方法:
(1)先以灰階讀取圖片,調整成適合的尺寸,宣告通道拿來放
dft後的實數部分和虛數部分,再用merge()合併通道,用dft()
進行離散傅立葉轉換,分離通道,得到頻譜圖和相位角後將
其中心化跟歸一化。
(2)自定義lowPassFilter(),把擴充後的圖和轉換的圖傳進去,
經果濾波後,H(u,v)和F(u, v)相乘,將結果逆傅立葉轉換,歸
一化,再裁回原尺寸輸出。
執行結果:
讀入灰階圖
頻域
相位
高斯低通濾波(sigma = 80)
沒有留言:
張貼留言