2021年4月28日 星期三

s1071532 影像處理作業3

  

離散傅立葉轉換 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 函式。


原圖


灰階


頻率大小


相位角度


after Guassian Low-Pass filter




圖片來源:


沒有留言:

張貼留言