一、開發環境
- Window 10
- Visual studio code 1.42.1
- OpenCV 4.4.0
- Python 3.6.8
二、作業說明
請撰寫一個程式,讀取一張256色灰階圖像。
(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。
(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
三、實作方法
(1)
- 用灰階的方式讀取圖片
- 用dft函數作傅立葉轉換,得到原始圖像的頻譜
- 用np.fft.fftshift將0頻率移到中間(有實部跟虛部)
- 將實部加入magnitude函數,得到頻譜幅度
- 將幅度映射到灰階空間[0,255],使其以灰階圖像顯示
- 將虛部加入np.arctan2函數,得到相位
(2)
- 製作一個mask,中心為1,其餘為0,保留低頻部分
- 把dft_shift (np.fft.fftshift的值) * mask,得到低頻的過濾值
- 再把這個過濾值作逆傅立葉idft,就可以得到平滑後圖像
沒有留言:
張貼留言