作業題目:
1.計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出。
2.對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的 frequency filter 步驟者可得滿分!)
使用環境:
Windows10
VScode + anaconda3
Python3.6.12
Opencv4.5.1
Numpy1.19.4
程式碼功能與資訊
Main:
(1)讀取car.jpg轉成灰度影像
(2)呼叫fourrier_trans()並傳入影像
(3)呼叫gaussian_smoothing()並傳入影像
fourrier_trans():
先用np.fft.fft2做傅立葉轉換
再用np.fft.fftshift做移頻,將主要點由左上移置中心
再用log與abs取得頻譜
而用np.angle()求出角度來繪製相位圖
*deg=1,代表求角度,若為0,則為弧度
最後將圖片用cv2.imwrite()存出
gaussian_smoothing():
先create出一個3*3的高斯filter
再將高斯filter做正規化
最後用signal.convolve2d對圖片做卷積後, cv2.imwrite()存出
執行結果:
原圖
相位圖
高斯平滑
沒有留言:
張貼留言