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結果
經傅立葉反轉換後
用高斯模糊去雜訊
留言
張貼留言