生成高斯噪声(用opencv和python实现)

2025-10-27 03:17:55

1、高斯噪声是指其概率密度函数服从高斯分布的噪声。

白噪声是指噪声的任意两个采样样本之间不相关

两者并不是一个概念。

这里先来一张正态分布的高斯噪声图

生成高斯噪声(用opencv和python实现)

2、生成代码如下:

通过随机函数生成序列,然后plot出来。

import numpy as npimport cv2 as cvfrom numpy import shapeimport randomimport copy

import matplotlib.pyplot as plt

serial = np.arange(0, 100) * 0.1

mid, sigma = 0, 0.1 # 设置均值和方差

zaosheng = np.random.normal(mid, sigma, 100) #数据生成

print(serial)

plt.title("")

plt.plot(serial[0:100],zaosheng[0:100])

plt.show()   #显示

生成高斯噪声(用opencv和python实现)

3、下面测量是否符合正态分布

还是采用直方图的方法。

这是采用大样本的图

生成高斯噪声(用opencv和python实现)

4、换个小样本的100的图

对比2个样本,可以看出,效果好坏和样本数有较大关系。

但规律是存在的。

生成高斯噪声(用opencv和python实现)

5、首先生成直方图 这里选择100个点

然后采用课本中的密度公式进行计算。得到数据并画图

代码如下

count, bins, ignored = plt.hist(zaosheng, 100, density=True)

plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) * np.exp( - (bins - mid)**2 / (2 * sigma**2) ), linewidth=2, color='r')

plt.show()

生成高斯噪声(用opencv和python实现)

6、更换样本 采用1000,然后 和100对比

就会发现差异所在。

在样本数发生变化之后尽管我们生成的噪声看起来杂乱,但是依旧符合高斯密度公式。

其实还可以在一个正玄波上叠加高斯噪声,后续再和大家一起学习。

生成高斯噪声(用opencv和python实现)

生成高斯噪声(用opencv和python实现)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢