s1093352 hw4
影像還原練習
- 附件中的image4 似乎受到某種頻域雜訊干擾,撰寫一個程式嘗試復原此圖像(將圖中雜訊去除)。
開發環境: Window 10 + Visual Studio 2019 + OpenCV 3.4.1
- 透過觀察作業3的頻譜圖可以發現中間有6個明顯的 periodic noise
- 創建一個全白的mask
- 接著把頻譜圖 noise 的地方用 circle() 來塗黑(可以找圖一邊的3個noise就好,因為對稱關係再用圖片尺寸去和 noise 相減來得到另一邊 noise 的位置)
- 因為之前顯示的頻譜圖有把低頻移到中間,所以mask塗黑的部分是移動過的位置,因此要在shift來還原到真正塗黑的頻譜圖的位置)
- 對 mask 用 planes() 多通道來儲存實數和虛數部分,merge() 來合併planes
- 接著用 mulSpectrums() 把頻譜圖和 mask 相乘來完成 noise 的 filtering
- idft() 來逆傅立葉轉換回去圖片
- split() 來分離planes的實數和虛數部分並取實數的部分
- 用 normalize() 歸一化來把值設定在0~255之間 並用 convertTo() 來轉成整數
- 最後用GaussianBlur() 來使圖片更平滑一點




留言
張貼留言