離散傅立葉轉換 DFT練習
(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。
(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。
(程式利用課本的frequency filter步驟者可得滿分,在網頁中將每個步驟結果呈現出。直接套用opencv函數得一半分數。)
開發環境:
Windows10
Vscode
Python3.9.6
Opencv-Python_4.5.5.62
程式想法:
一開始先引用matplotlib import pyplot as plt
(1)頻譜:
首先cv2.imread('檔名',cv.IMREAD_GRAYSCALE)
再來用cv2.dft轉換成頻率域,再使用np.fft.fftshift將頻率0移置中心點(原本在左上角)
接著使用magnitude函式和20*np.log取得頻譜
(2)相位角度:
使用arctan2取得相位角度
(3)高斯低慮波:
首先用mask遮罩設定為1,再用逆傅立葉np.fft.iffshift還原
最後再用magnitude取得振幅
(4)顯示:
使用plt顯示plt.show(),plt.axis('off')關掉座標
原始灰階:
頻譜:
相位角度:
沒有留言:
張貼留言