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.使用原圖扣去復原後的圖片,可觀察扣除的部分(意即雜訊的分布)。
最後附上成品的大圖。

留言
張貼留言