美文网首页
如何正确地给图像添加高斯噪声

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

作者: seniusen | 来源:发表于2021-01-10 10:39 被阅读0次

高斯噪声是一个均值为 0 方差为 \sigma_n^2 的正态分布,是一个加性噪声。但要正确地给图片添加高斯噪声,还要取决于程序中读入图片的数据格式。

如果图片的数据格式为 uint8,也即数据的范围为 [0, 255],那么直接生成对应方差的噪声,然后加到图片上去。

# clean_image uint8 (128, 128)
noise_image = clean_image + np.random.randn(128, 128) * sigma

此处 np.random.rand(128, 128) 生成一个均值为 0 方差为 1 的正态分布,然后我们乘以 \sigma_n,将方差调整到 \sigma_n^2,再加到图片上即可。

如果图片的数据格式为浮点型,而且数据的范围为 [0, 1],那么我们需要对噪声的方差做一些调整,真正加到图片上的噪声方差应该为 \sigma_{real}^2 = \frac{\sigma_n^2}{255^2},也即 \sigma_{real} = \frac{\sigma_n}{255}

# clean_image float32 (128, 128)
noise_image = clean_image + np.random.randn(128, 128) * sigma / 255

此处 np.random.rand(128, 128) 生成一个均值为 0 方差为 1 的正态分布,然后我们乘以 \sigma_n / 255,将真实方差调整到 \sigma_n^2,再加到图片上即可。

在 MATLAB 中,imnoise 会对图片进行处理,将像素值缩放到 [0, 1] 之间,因此我们在传入方差的时候也必须要先进行调整。

noise_image = imnoise(clean_image, 'gaussian', 0, sigma^2/255^2)

有时候,我们真的需要对知识抱有敬畏之心,任何一个小的知识点都没有那么简单。但如果你在这些小的知识点上犯了小错误,后果却是不可想象的。千里之堤毁于蚁穴,与君共勉!

相关文章

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

    高斯噪声是一个均值为 0 方差为 的正态分布,是一个加性噪声。但要正确地给图片添加高斯噪声,还要取决于程序中读入...

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

    高斯噪声是一个均值为 0 方差为 的正态分布,是一个加性噪声。但要正确地给图片添加高斯噪声,还要取决于程序中读入...

  • 26 Noise Layers

    本篇介绍的内容主要是给输入数据加入高斯噪声的。高斯噪声是指噪声数据服从高斯分布。一般图像处理都是用高斯噪声过滤器进...

  • Opencv中图像噪声与图像平滑

    图像噪声 由于图像采集、处理等过程都存在一定的误差而存在响应的噪声。其中,噪声包括高斯噪声、均匀分布噪声、脉冲噪声...

  • exp3-图像复原

    图像复原中的均值滤波、统计排序滤波,去除高斯、椒盐噪声 去除周期噪声 由退化函数进行图像复原

  • 三种图像处理方法(笔记补充中......)

    目前暂时只接触到椒盐噪声和高斯噪声(正态分布) 1.图像平滑(低通滤波) 图像平滑又称图像模糊,图像滤波,主要目的...

  • 概率密度函数定义的噪声是如何影响数字图像的?

    举个例子: 高斯白噪声,概率密度函数如下: 这表示,噪声信号(像素值)会以这个概率分布的规律给原始图像上的各个点加...

  • tensorflow给训练图像添加噪声

    import tensorflow as tf import cv2 import os import numpy...

  • opencv各种卷积核滤波器

    高斯滤波 使图像平滑,可以用来去除噪声。高斯滤波器将中心像素周围的像素按照高斯分布加权平均进行平滑化。 中值滤波 ...

  • skimage添加图像噪声

    通过skimage.util.random_noise添加噪声Python-图像加噪实现(Gaussian noi...

网友评论

      本文标题:如何正确地给图像添加高斯噪声

      本文链接:https://www.haomeiwen.com/subject/yajkaktx.html