2022年4月14日 星期四

s1081528 作業4

 

作業說明

請撰寫一個程式,讀取一張256色灰階圖像。

(1)    計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。

(2)    對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。

(程式利用課本的frequency filter步驟者可得滿分,在網頁中將每個步驟結果呈現出。直接套用opencv函數得一半分數。)

開發環境

  • Windows 11
  • Visual Studio Code
  • Anaconda 4.11.0
  • OpenCV 4.5.5

程式說明

使用imread(path,cv2.IMREAD_GRAYSCALE)來讀取圖像,呈現灰階模式。

(1)   離散傅立葉轉換

ⅰ.用Zero padding將圖像大小變成2M*2N(原為M*N),並將原圖放在左上角。

ⅱ.圖像乘上(1)x+y達成中心化。



ⅲ.使用magnitude()得到頻譜圖。

ⅳ.使用phase()得到相位圖。

(2)   Gaussian Low-Pass filter

ⅰ.根據公式 先計算D(u,v)再計算H(u,v),最後代入公式(F(u, v)為傅立葉轉換)。

Gaussian Low-Pass Filter, D0=30

ⅱ.對G(u,v)做反傅立葉轉換,得到原圖。

實作結果

原圖



過程




沒有留言:

張貼留言