作業說明
請撰寫一個程式,讀取一張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
ⅰ.根據公式
Gaussian Low-Pass Filter, D0=30 |
ⅱ.對G(u,v)做反傅立葉轉換,得到原圖。
實作結果
原圖
過程
沒有留言:
張貼留言