2022年4月14日 星期四

s1081355 作業4

開發環境

  • 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,得到低頻的過濾值
    把這個過濾值作逆傅立葉,就得到平滑後圖像

執行結果




沒有留言:

張貼留言