作業內容:
請撰寫一個程式,讀取一張 256 色灰階圖像。
(1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像方式呈現出。
(2)對圖像利用 Gaussian
Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的frequency
filter 步驟者可得滿分!)
Coding環境:
l
Windows 10 2004
l
Visual Studio Code 1.54.1
l
Anaconda 4.8.3
l
Python 3.9.1
l
OpenCV 4.5.1
程式說明:
1.
使用Python import OpenCV
2.
使用cv2.imrea()d讀取圖片存入img
3.
利用cv2.cvtColor()及參數cv2.COLOR_BGR2GRAY將圖片轉灰階
4.
利用 cv2.dft() 進行傅立葉轉換
5.
透過 np.fft.fftshift() 將頻譜低頻從左上角移動到中心位置
6.
使用 cv2.magnitude() 取得頻譜、cv2.phase() 取得相位角
7.
使用 cv2.GaussianBlur 對圖片進行平滑處理
8.
使用 pyplot 印出
處理結果:
原圖:
頻譜:
相位角:模糊後圖像:
沒有留言:
張貼留言