[英]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]/9
或fspecial('gaussian',3)
應該更好。 然而,他們真的不能很好地做到這一點:
我錯過了重要的事嗎? 順便說一句,我需要使用卷積。
你什么都不缺! 顯然,你不能完全消除噪音。 您可以嘗試不同的過濾器,但所有過濾器都需要權衡:
更多噪點+更少模糊VS更少噪音+更多模糊
如果您通過以下方式考慮這一點會變得更加明顯:
任何基於卷積的方法都假定所有鄰居都具有相同的顏色。
但在現實生活中,圖像中有許多物體。 因此,當您應用卷積時,通過混合來自不同相鄰對象的像素會導致模糊。
有更復雜的去噪方法,如:
他們不是只使用卷積。 順便說一句,即使他們不能做魔術。
您可以使用wiener2
,當噪聲是恆定功率(“白色”)加性噪聲(如高斯噪聲)時效果最佳。
你用高斯卷積矩陣弄錯了。 你需要將它除以16,而不是9,這樣它的總和等於1.這就是使用該矩陣得到的圖像如此輕的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.