一、作業說明
請撰寫一個程式,讀取一張 256 色灰階圖像。
(1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像 方式呈現出。
(2)對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的 frequency filter 步驟者可得滿分!)
二、作業環境&語言
Windows 10
Visual Studio Code 1.54.3
Python 3.8.3
OpenCV 4.5.1.48
Numpy 1.19.5
Matplotlib 3.2.2
三、實作方法
1. imread讀取灰階圖片
2. padding,取較大的邊當作要padding的大小
3. 把基數個位置的pixel乘以(-1),但不會變成負數,所以實際上會以0(黑色)表示
4. 用 cv.dft做離散傅立葉轉換,
再用magnitude()跟phase()求頻譜大小跟相位圖,並中心化
5. 建立頻域用的Guassian low-pass filter
6. 對頻譜圖用Guassian low-pass filter
7. 用cv.idft做反離散傅立葉轉換
8. 裁剪成原本圖片的大小
四、執行結果
沒有留言:
張貼留言