1、作業說明
請撰寫一個程式,讀取一張256色灰階圖像。
(a)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出
(b)對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
2、開發環境
- Windows 10
- OpenCv 4.5.5
- Python 3.10.1
3、程式說明
1) 計算輸入圖的離散傅立葉轉換結果
利用cv2.dft()計算離散傅立葉轉換結果
2) 將頻譜大小與相位角度個以灰階256色圖像方式呈現出
分別使用np.fft.fftshift()和cv2.magnitude()將傅立葉的轉換結果shift成頻譜圖和相位角度圖
3) 對圖像進行gaussian low pass filter處理
使用子下兩條式子分別找到D(u,v)和H(u,v),再使已進行傅立葉轉換的相位角圖與H(u,v)相乘進行low pass的濾波。
4) 對濾波完成的圖像反傅立葉轉換
使用cv2.idft()進行反傅立葉轉換並輸出
4、執行結果
執行程式後會跳出一個視窗如下,分別展示input image、轉換後頻譜圖、轉換後相位圖、高斯low-pass filter、平滑後圖像。
沒有留言:
張貼留言