2021年5月2日 星期日

s1071754 影像處理作業3

  作業內容:

請撰寫一個程式,讀取一張 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)

處理結果:

原圖



灰階圖



頻譜圖



相位圖


高斯模糊處理後





沒有留言:

張貼留言