我正在尝试从图像中去除高斯噪声。我使用以下方法添加了噪声:
nImg = imnoise(img,'gaussian',0,0.01);
我现在需要使用自己的滤波器去除噪音,或者至少减少它。理论上,我了解到使用一个卷积矩阵
ones(3)/9
应该有帮助,使用高斯卷积矩阵像[1 2 1; 2 4 2; 1 2 1]/9
或fspecial('gaussian',3)
更好。然而,它们真的不能很好地处理问题:
![enter image description here](https://istack.dev59.com/00c24.webp)
我正在尝试从图像中去除高斯噪声。我使用以下方法添加了噪声:
nImg = imnoise(img,'gaussian',0,0.01);
ones(3)/9
应该有帮助,使用高斯卷积矩阵像[1 2 1; 2 4 2; 1 2 1]/9
或fspecial('gaussian',3)
更好。然而,它们真的不能很好地处理问题:
你没有错过任何东西!显然,你无法完全消除噪声。你可以尝试不同的滤波器,但它们都会有一个权衡:
更多噪声+更少模糊VS更少噪声+更多模糊
如果你以以下方式思考,这将变得更加明显:
任何基于卷积的方法都假设所有邻居具有相同的颜色。
但在现实生活中,图像中有许多物体。因此,当你应用卷积时,你会通过混合来自不同相邻物体的像素来引起模糊。
还有更复杂的去噪方法:
它们不仅使用卷积。顺便说一下,即使它们也不能创造魔法。
你在高斯卷积矩阵上犯了一个错误。你需要将它除以16,而不是9,这样它的总和才等于1。这就是为什么使用那个矩阵得到的图像如此亮。
1 2 1;2 4 2;1 2 1
,你是正确的。我应该除以16而不是9。即便如此,它仍然不能很好地工作:链接 - shwartz