s1083319 作業4

題目敘述 

 

附件中的 image4 似乎受到某種頻域雜訊干擾,撰寫一個程式嘗試復原此圖像(將圖中雜訊去除)。


開發環境 

l   Windows 11 

l   Visual Studio Code 

l   Python 3.11 

l   OpenCV 4.7.0.72 

 

Import 

 

l   cv2 

l   numpy

 

功能說明


1. 直接讀取出一張灰階的圖片

cv2.imread(path, cv2.IMREAD_GRAYSCALE)


2. 執行傅里葉變換後將頻率分量移至中央

np.fft.fft2()

np.fft.fftshift()


3. 計算頻譜

np.log()


4. 創建一個mask來過濾特定的頻率

generate_mask()---自訂

draw_circle()---自訂

cv2.circle()

cv2.setMouseCallback()


5. 執行傅里葉反變換,將圖像還原

np.fft.ifftshift()

np.fft.ifft2()

np.abs()


6. 正規化(以灰階 256 色圖像方式呈現)

cv2.normalize(img_name , None, 0, 255, cv2.NORM_MINMAX)


7. 用高斯模糊去除雜訊

cv2.GaussianBlur()


執行結果 

 

Hw04


原圖


經傅立葉轉換後


以滑鼠標記位置


mask結果


經傅立葉反轉換後


用高斯模糊去雜訊


留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6