離散傅立葉轉換 DFT 練習
請撰寫一個程式,讀取一張 256 色灰階圖像。
(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出。
(2) 對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。
程式語言:Python 3.7.3 64-bit
開發環境:
- Windows 10
- Visual Studio Code
- OpenCV 4.5.1
實作方法與演算法:
使用 imread 把全彩圖片以灰階的方式讀進來,經過 numpy 裡面的傅立葉轉換得到了跟圖片一樣大的一個複數(complex)矩陣,再用 numpy 裡的傅立葉 shift 把最低頻率的部分從左上角移到中間。
(1) 頻率各占比的圖是把這些在矩陣裡的複數轉成實數並以 0 ~ 255 的範圍表示;相位角的圖則是運用 numpy 裡的 angle 函式。(2) 對原灰階圖使用 opencv 裡面的 GaussianBlur 函式。
沒有留言:
張貼留言