我正在尝试从图像中去除高斯噪声。我自己添加了噪音:
nImg = imnoise(img,'gaussian',0,0.01);
我现在需要使用我自己的过滤器去除噪音,或者至少减少它。理论上,据我了解,使用卷积矩阵ones(3)/9
应该会有所帮助,而使用高斯卷积矩阵应该会更好[1 2 1; 2 4 2; 1 2 1]/9
。fspecial('gaussian',3)
然而,他们真的做得不太好:
我错过了什么重要的东西吗?顺便说一下,我需要使用卷积。
我正在尝试从图像中去除高斯噪声。我自己添加了噪音:
nImg = imnoise(img,'gaussian',0,0.01);
我现在需要使用我自己的过滤器去除噪音,或者至少减少它。理论上,据我了解,使用卷积矩阵ones(3)/9
应该会有所帮助,而使用高斯卷积矩阵应该会更好[1 2 1; 2 4 2; 1 2 1]/9
。fspecial('gaussian',3)
然而,他们真的做得不太好:
我错过了什么重要的东西吗?顺便说一下,我需要使用卷积。
你没有错过任何东西!显然,您无法完全消除噪音。您可以尝试不同的过滤器,但它们都会有一个权衡:
更多噪点 + 更少模糊VS 更少噪点 + 更多模糊
如果您以以下方式考虑这一点,它会变得更加明显:
任何基于卷积的方法都假设所有邻居都具有相同的颜色。
但在现实生活中,图像中有很多物体。因此,当您应用卷积时,您会通过混合来自不同相邻对象的像素来导致模糊。
还有更复杂的去噪方法,例如:
他们不仅仅使用卷积。顺便说一句,即使是他们也不会魔法。
wiener2
当噪声是恒定功率(“白”)加性噪声(例如高斯噪声)时,您可以使用哪种方法效果最好。
你在高斯卷积矩阵上犯了一个错误。您需要将其除以 16,而不是 9,这样总和就等于 1。这就是使用该矩阵生成的图像如此轻的原因。