2022年4月12日 星期二

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

四、實作圖片


  • 原始圖


  • 頻譜大小

  • 相位角度


  • 平滑後圖像




沒有留言:

張貼留言