- 作業題目:
- 請撰寫一個程式,讀取一張 256 色灰階圖像。
- (1)計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階 256 色圖像 方式呈現出。
- (2)對圖像利用 Gaussian Low-Pass filter 處理,輸出平滑後圖像。(程式利用課本的 frequency filter 步驟者可得滿分!)
- 使用環境:
- Arch Linux
- python 3.7.9
- OpenCV 3.4.2
- numpy 1.19.2
- matplotlib 3.4.1
- 方法 :
Step1. Input image f(x,y) of size MxN
Step2. Form a zero-padded image fp (x,y) of size PxQ, where P=2xM, Q=2xN
Step3. Multiply fp (x,y) by (−1)^(x+y) to center its transform
Step4. Compute DFT F(u,v) of the image
Step5. 輸出相位跟頻譜
Step6. Generate Gaussian low pass filter in frequency domain and Form the product G(u,v)=F(u,v)H(u,v)
Step7. IDFT Obtain the processed image
Step8. Obtain image by extracting the M×N region from the left-top quadrant of g(x,y)
Step9. Save the smoothed image
- 執行結果:
- 原圖
- 灰階
- 頻域(取log)
- 相位(中心化)
- D0=30 高斯低通濾波器頻域(乘255)
- 結果圖
沒有留言:
張貼留言