如何在图像中添加高斯噪声?

Posted

技术标签:

【中文标题】如何在图像中添加高斯噪声?【英文标题】:How to add Gaussian noise to an image? 【发布时间】:2016-01-24 11:42:14 【问题描述】:

如何在python中给图像添加一定量的高斯噪声?我是否需要以某种方式将图像的值转换为双精度类型或其他类型?

另外,我对测量图像中的噪点水平有疑问。一个根据 dB(分贝)添加它,而另一个则考虑方差。它是如何相关的,我应该如何测量噪音水平?

【问题讨论】:

Numpy 有一些非常方便的图像处理功能:scipy-lectures.org/advanced/image_processing 【参考方案1】:

您可以在 scikit-image 中使用 random_noise 函数。它是这样的:

skimage.util.random_noise(image, mode='gaussian', seed=None, clip=True, **kwargs)

您可以在此处阅读有关它的更多信息: http://scikit-image.org/docs/stable/api/skimage.util.html#random-noise

【讨论】:

【参考方案2】:

我假设您的意思是应用Gaussian blur。 Pillow(Python Image Library fork)支持很多图像处理方法,包括高斯模糊。 ImageFilter 模块特别实现了这一点。

至于如何测量噪音水平——这是一个有点复杂的问题。半径和方差的概念大多是相关的(this post 在某种程度上讨论了它)。实际上,为了在这里选择正确的参数进行图像处理,理论上一切都很好,但我发现猜测并尝试成为这里的最佳方法。

dB 通常与Gaussian filters 相关(至少在可以作用于输入信号的“高斯”事物的主题上),例如在数字信号处理 (DSP) 中。高斯模糊/滤波器是与输入信号卷积类似的概念,但在不同领域进行了讨论。在谈论 DSP 中的信号时,谈论滤波器响应的 dB 会更自然一些……以及一般地比较信号。我假设这不是你在说的。

【讨论】:

以上是关于如何在图像中添加高斯噪声?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确地给图像添加高斯噪声

使用 imnoise 为图像添加高斯噪声

如何从 MATLAB 中的图像中去除高斯噪声?

python使用opencv对图像添加(高斯/椒盐/泊松/斑点)噪声

python使用opencv对图像添加(高斯/椒盐/泊松/斑点)噪声

python使用opencv对图像添加(高斯/椒盐/泊松/斑点)噪声