问题描述
我正在尝试从图像中删除高斯噪声。我自己添加了噪音:
I'm trying to remove a Gaussian noise from an image. I've added the noise myself using:
nImg = imnoise(img,'gaussian',0,0.01);
我现在需要使用自己的过滤器消除噪音,或者至少减少噪音。理论上,据我所知,使用 ones(3)/ 9
的卷积矩阵应该有助于并使用像这样的高斯卷积矩阵[1 2 1 ; 2 4 2; 1 2 1] / 9
或 fspecial('gaussian',3)
应该更好。然而,他们真的不能很好地做到这一点:$ b $ b
I now need to remove the noise using my own filter, or at least reduce it. In theory, as I understand, using a convolution matrix of ones(3)/9
should help and using a Gaussian convolution matrix like [1 2 1; 2 4 2; 1 2 1]/9
or fspecial('gaussian',3)
should be better. Yet, they really don't do the trick so well:
我错过了一些重要的事情吗?顺便说一句,我需要使用卷积。
Am I missing something important? I need to use convolution, by the way.
推荐答案
你没有遗漏任何东西!
显然,你不能完全消除噪音。您可以尝试不同的过滤器,但所有过滤器都需要权衡:
You are not missing anything!Obviously, you can't remove the noise completely. You can try different filters, but all of them will have a tradeoff:
如果您通过以下方式考虑这一点会变得更加明显:
It becomes more obvious if you think of this in the following way:
但在现实生活中,图像中有很多物体。因此,当您应用卷积时,通过混合来自不同相邻对象的像素会导致模糊。
But in real life, there are many objects in the image. Thus, when you apply the convolution you cause blur by mixing pixels from different adjacent objects.
还有更复杂的去噪方法,如:
There are more sophisticated denoising methods like:
- 中位数去噪
- 双边过滤器
- 基于模式匹配的去噪
他们没有使用仅卷积。顺便说一句,即使他们也不能做魔法。
They are not using only convolution. By the way, even they can't do magic.
这篇关于如何从MATLAB中删除图像中的高斯噪声?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!