作業內容:
請撰寫一個程式,讀取一張 256 色灰階圖像。
(1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出。
(2)對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的frequency filter 步驟者可得滿分!)
Coding環境:
- Windows 10
- Anaconda 4.8.4
- Jupyter 6.0.1
- Python 3.7.9
- OpenCV 3.4.2
程式說明:
1. 首先呼叫cv2.imread()讀取圖片存入image
2. 接著使用cvtColor()將全彩圖片轉為灰階圖
3. 再用np.fft.fft2() 進行二維的傅立葉轉換去得到頻率分佈,將空間域轉化為頻率域
4.用np.fft.fftshift()將中心點位置從左上角移到中心位置
5.將複數轉為浮點數進行傅立葉頻譜圖顯示,使用np.log()執行
6.使用cv2.imshow()和imwrite()去分別顯示和儲存得到的頻譜圖
7.使用np.angle()將第4步之結果取出相位角度並顯示
8.對第二步之灰階圖進行cv2.GaussianBlur()之高斯模糊處理並顯示,值設定為(5,5)
處理結果:
原圖
灰階圖
頻譜圖
相位圖
高斯模糊處理後
沒有留言:
張貼留言