s1091550 作業4

 

題目敘述:

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

開發環境:

  • Windows 10
  • Visual Studio 2019 C++
  • OpenCV 4.2.0

步驟說明:

主要先通過傅立葉轉換獲得圖片之頻譜圖,透過Notch Filter(帶阻濾波器)將特定的頻率濾除,再通過傅立葉逆轉換和高斯模糊將圖片還原。以下將逐步解釋:
  1. imread():讀入圖像。
  2. dft() + dft_shift(): 傅立葉轉換輸出一個複數陣列得到圖片的頻譜圖,再將ROI區域調換。
  3. 頻譜圖
  4. notch_filter():將特定的頻率濾除,即設計Notch Filter將週期性規律的干擾訊號(頻譜圖中除原點外還存在的對稱分布亮點)以circle()將那些點遮住(值設為0)。   

    經過Notch Filter後的頻譜圖
*亮點的位置是透過locator() + setMouseCallback(): 針對dft頻譜圖視窗,在滑鼠點擊左鍵時,印出其座標位置來找尋。*


  1. dft(): 將以notch filter處理過的頻譜圖進行傅立葉逆變換,設定轉換方式為DFT_INVERSE(等價於idft())。
    傅立葉逆變換
  2. GaussianBlur(): 模糊邊界,使邊緣較不銳利。
高斯模糊後之復原圖

Demo影片:    https://youtu.be/ODfBWBuCsYs

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1