1.作業說明
請撰寫一個程式,讀取一張 256 色灰階圖像。 (1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像 方式呈現出。 (2)對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的 frequency filter 步驟者可得滿分!)
2. 使用環境
Anaconda(conda 4.8.3)、Python 3.8.3、OpenCV 4.5.1
3.方法
imread()讀入圖片(原圖)
copyMakeBorder()填充一倍高一倍寬的黑色(圖一)
padding乘上(-1)**(x+y) (圖二)
fft.fft2 傅立葉轉換
fftshift()、np.log、np.abs轉換成頻波圖片顯示(圖三)
np.angle()轉成相位角
計算後修改範圍0~255輸出(圖A)
gaussian lowpass filters (D0值使用3777), 計算結果顯示(圖四)
(圖五) HF的頻譜
inverser shift -- ifftshift() 轉回影像(圖六)
將多餘部分割掉img.real[x起點值:保留x長度,y起點值,保留y長度]
沒有留言:
張貼留言