详解向图像加入高斯白噪声

        研究生期间主要研究的课题就是关于图像去噪内容的,我们最常用的方法就是向图片图片添加固定噪声浓度的高斯白噪声来模拟自然界中的真实含噪图片。但是具体加入的高斯白噪声到底是什么类型的噪声,他在图像中出现的频率,以及噪点的深度是多少也都是值得我们在意的地方,只有弄懂这些,你才会更深刻地理解向图像中添加高斯噪声的含义。

一、高斯分布

详解向图像加入高斯白噪声_第1张图片

凡是学过概率统计的人,想必高斯分布是大家再熟悉不过的一种概率函数,这里不再赘述其数学表达式之类的,详细内容可以参考这篇文章透彻理解高斯分布。我主要还是想强调三点:

第一、高斯分布的概率密度函数,是一个钟形曲线,有两个重要的参数,一个是均值u,另一个是方差σ,整个曲线关于x=u对称。

第二、 函数曲线下68.268949%的面积在平均值左右的一个标准差范围内;95.449974%的面积在平均值左右两个标准差2σ的范围内;99.730020%的面积在平均值左右三个标准差3σ的范围。

第三、方差σ越大,对应的概率函数的图像越平,也就是说各个值出现的可能性也就越高,太小的话,出现的值基本都在均值附近了。

二、图像中添加高斯噪声

高斯白噪声,幅度分布服从高斯分布,功率谱密度服从均匀分布。它的意义就很明确了,上半句是从空域(幅值)角度描述“高斯噪声”,而下半句是从频域角度描述“白噪声”。实际上就是在原图像上(几乎每个点上)都像素值符合高斯分布的随机数值。我们通常说添加噪声浓度为30的高斯噪声,就是说添加噪声的幅度分布符合标准差为30的高斯分布。在默认高斯分布的均值为0的条件下,我们噪声点的赋值,有大约68%的可能性都是分布在[-30,30]的区间内,所以当我们增大高斯分布的标注差的时候,也就是在一定概率下增大了每个像素点的噪声浓度。

 

三、具体实现方法

      经过上述的介绍,我们可以明确知道,高斯噪声其实就是加噪声,所以我们可以使用numpy函数先生成一个和原图像一样尺寸大小的噪声矩阵,然后再直接和原图像进行加和,最后再对赋值进行一定范围内的裁剪,将范围图片像素值范围限定在[0,255]范围内。具体matlab实现方法可以参照matlab给数字图像加高斯白噪声的几种方法,还有python的实现方法通过skimage.util.random_noise添加噪声,需要注意的是,通过skimage.util.random_noise添加噪声时,会将图像缩放当[0,1]范围内,所以我们也需要将标注差进行归一化处理,需要除以255,然后再平方,变成方差。

noise_image=skimage.util.random_noise(clean_image, mode='gaussian', seed=None,var=(30/255.0)**2)

 

你可能感兴趣的:(图像处理)