1061549 hw04
1112 Digital Image Processing Assignment #4
影像還原練習
附件中的 image4 似乎受到某種頻域雜訊干擾,撰寫一個程式嘗試復原此圖像(將圖中雜訊去除)。
開發環境: Windows 10 Visual Studio
2022 C++ OpenCV-4.7.0
程式說明 :
1.傅立葉變換 :對圖像進行離散傅立葉變換(DFT)
dft(complexImage, complexImage);
dft 函數 : 對輸入的圖形進行離散傅里葉變換
2.計算頻譜圖 : 將DFT結果轉換為頻譜圖,方便觀察圖像中的頻率分量。
split(complexImage, planes);
split 任數 : 將一個多通道矩陣分解成多個單通道矩陣。
magnitude(planes[0], planes[1], spectrum);
magnitude 函數 : 計算兩個矩陣對應位置上元素的幅值。
3.設計和應用mask : 為頻譜圖設計一個mask,用於標記頻譜圖中要去除的頻率區域,黑點作為mask應用到圖像中,以去除高頻雜訊
setMouseCallback("Spectrum Mask", onMouse, &mask);
setMouseCallback 函數 : 設定鼠標事件。
4.逆傅立葉變換
idft(complexImage, complexImage);
idft 函數:對輸入的 DFT 結果進行離散傅里葉逆變換
5.進行高斯模糊,進一步平滑圖像,去除雜訊和增強邊緣效果,在逆傅立葉轉換後對圖像進行模糊處理可以有助於去除一些高頻雜訊,並讓邊緣看起來較不銳利。
GaussianBlur(planes[0], planes[0], Size(3, 3), 0, 0);
圖片和影片:
原圖
處理後的圖片
留言
張貼留言