簡體   English   中英

如何從MATLAB中刪除圖像中的高斯噪聲?

[英]How to remove gaussian noise from an image in MATLAB?

我正試圖從圖像中刪除高斯噪聲。 我自己添加了噪音:

nImg = imnoise(img,'gaussian',0,0.01);

我現在需要使用自己的過濾器去除噪音,或者至少減少噪音。 理論上,據我所知,使用ones(3)/9卷積矩陣應該有助於並使用高斯卷積矩陣,如[1 2 1; 2 4 2; 1 2 1]/9 [1 2 1; 2 4 2; 1 2 1]/9 [1 2 1; 2 4 2; 1 2 1]/9fspecial('gaussian',3)應該更好。 然而,他們真的不能很好地做到這一點: 在此輸入圖像描述

我錯過了重要的事嗎? 順便說一句,我需要使用卷積。

你什么都不缺! 顯然,你不能完全消除噪音。 您可以嘗試不同的過濾器,但所有過濾器都需要權衡:

更多噪點+更少模糊VS更少噪音+更多模糊

如果您通過以下方式考慮這一點會變得更加明顯:

任何基於卷積的方法都假定所有鄰居都具有相同的顏色。

但在現實生活中,圖像中有許多物體。 因此,當您應用卷積時,通過混合來自不同相鄰對象的像素會導致模糊。

有更復雜的去噪方法,如:

  • 中位數去噪
  • 雙邊過濾器
  • 基於模式匹配的去噪

他們不是使用卷積。 順便說一句,即使他們不能做魔術。

您可以使用wiener2 ,當噪聲是恆定功率(“白色”)加性噪聲(如高斯噪聲)時效果最佳。

你用高斯卷積矩陣弄錯了。 你需要將它除以16,而不是9,這樣它的總和等於1.這就是使用該矩陣得到的圖像如此輕的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM