s1093352 hw4

 影像還原練習

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

開發環境: Window 10 + Visual Studio 2019 + OpenCV 3.4.1 



  1. 透過觀察作業3的頻譜圖可以發現中間有6個明顯的 periodic noise

  2. 創建一個全白的mask

  3. 接著把頻譜圖 noise 的地方用 circle() 來塗黑(可以找圖一邊的3個noise就好,因為對稱關係再用圖片尺寸去和 noise 相減來得到另一邊 noise 的位置)

  4. 因為之前顯示的頻譜圖有把低頻移到中間,所以mask塗黑的部分是移動過的位置,因此要在shift來還原到真正塗黑的頻譜圖的位置)

  5. 對 mask 用 planes()  多通道來儲存實數和虛數部分,merge() 來合併planes
  6. 接著用 mulSpectrums() 把頻譜圖和 mask 相乘來完成 noise 的 filtering
  7. idft() 來逆傅立葉轉換回去圖片
  8. split() 來分離planes的實數和虛數部分並取實數的部分
  9. 用 normalize() 歸一化來把值設定在0~255之間 並用 convertTo() 來轉成整數
  10. 最後用GaussianBlur() 來使圖片更平滑一點
  • 原圖

  • 結果







留言

這個網誌中的熱門文章

rzwang Homework #1

s1101438 Homework #1

s1093309 作業6