s1091550 作業4
題目敘述:
影像還原練習
附件中的 image4 似乎受到某種頻域雜訊干擾,撰寫一個程式嘗試復原此圖像(將圖中雜
訊去除)。
![]() |
image4 |
開發環境:
- Windows 10
- Visual Studio 2019 C++
- OpenCV 4.2.0
步驟說明:
主要先通過傅立葉轉換獲得圖片之頻譜圖,透過Notch Filter(帶阻濾波器)將特定的頻率濾除,再通過傅立葉逆轉換和高斯模糊將圖片還原。以下將逐步解釋:
- imread():讀入圖像。
- dft() + dft_shift(): 傅立葉轉換輸出一個複數陣列得到圖片的頻譜圖,再將ROI區域調換。
- notch_filter():將特定的頻率濾除,即設計Notch Filter將週期性規律的干擾訊號(頻譜圖中除原點外還存在的對稱分布亮點)以circle()將那些點遮住(值設為0)。
經過Notch Filter後的頻譜圖
![]() |
頻譜圖 |
*亮點的位置是透過locator() + setMouseCallback(): 針對dft頻譜圖視窗,在滑鼠點擊左鍵時,印出其座標位置來找尋。*
- dft(): 將以notch filter處理過的頻譜圖進行傅立葉逆變換,設定轉換方式為DFT_INVERSE(等價於idft())。
傅立葉逆變換 - GaussianBlur(): 模糊邊界,使邊緣較不銳利。
![]() |
高斯模糊後之復原圖 |
留言
張貼留言