s1061637 作業4

 

主題: 影像還原練習

作業要求:image4 似乎受到某種頻域雜訊干擾,撰寫一個程式嘗試復原此圖像(將圖中雜訊去除)



開發環境:

  • Windows 11
  • Vscode
  • python
  • Open CV 4.7

作業步驟說明:

1.導入需要的程式庫,並使用OpenCV庫的cv2.imread()函數讀取一張灰階圖像,並將其轉換為numpy數組。

2.使用numpy庫的fft2()函數進行二維的快速傅立葉轉換,將圖像轉換到頻域中。接著使用numpy庫的fftshift()函數將圖像的零頻率移動到圖像中心,以便進行下一步操作。


3.    image4的頻譜進行觀察,並且以notch filter對特定頻率進行濾波操作:使用ones_like()函數創建一個與原圖頻譜相同大小、全為1的數組,並定義多個矩形和圓形區域,作為濾波器的遮罩


4.位置如以上設定,將矩形和圓形的兩種遮罩相乘得到複合的遮罩。filter與頻譜疊加如圖。

5.最後使用numpy庫的ifftshift()將遮罩應用到頻域上,使用ifft2()函數進行逆傅立葉轉換,得到濾波後的圖像。

6.使用matplotlib庫顯示原圖像和濾波後的圖像。


7.使用原圖扣去復原後的圖片,可觀察扣除的部分(意即雜訊的分布)


最後附上成品的大圖。

留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1091537 Homework #1