python中的噪声函数 python 图像加噪声

加性高斯白噪声及维纳滤波的基本原理与Python实现 加性高斯白噪声属于白噪声的一种,有如下两个特点:
random.gauss(mu, sigma) 其值即服从高斯分布,若想要是实现加性高斯白噪声,循环作加即可
实际上逆滤波是维纳滤波的一种理想情况,当不存在加性噪声时,维纳滤波与逆滤波等同 。
在时域内有
根据时域卷积定理,我们知道 时域卷积等于频域乘积
则有
这意味着,当我们已知系统函数时,我们可以很简单的完成滤波 。
理解了逆滤波的基本过程之后,实际上维纳滤波就不是太大问题了 。实际上,逆滤波对于绝大多数情况滤波效果都不好,因为逆滤波是通过傅里叶变换将信号由时域转换到频域 , 再根据 时域卷积定理 ,在频域作除法 。对于乘性干扰这当然是没问题的,甚至是完美的 。而如果存在加性噪声,例如:加性高斯白噪声 。逆滤波效果就不好了,某些情况下几乎无法完成滤波情况 。
输入信号经过系统函数后
时域上
频域上
若存在加性噪声则为
时域上
频域上

于是,从上面对输入信号的估计表达式可以看出,多出了一项加性噪声的傅里叶变换与系统函数的比值 。尤其当相对于很小时,滤波后的信号差距十分严重 。
而我们又知道: 白噪声的白为噪声的功率谱为常数,即为常数,于是 , 从直观上看,当相对于较大时,则较小 , 上式第一项则较?。诙罱洗蟠佣3窒喽云轿?。
click me!
如何用python实现图像的一维高斯滤波器如何用python实现图像的一维高斯滤波器
现在把卷积模板中的值换一下,不是全1了,换成一组符合高斯分布的数值放在模板里面,比如这时中间的数值最大,往两边走越来越小 , 构造一个小的高斯包 。实现的函数为cv2.GaussianBlur() 。对于高斯模板,我们需要制定的是高斯核的高和宽(奇数),沿x与y方向的标准差(如果只给x,y=x,如果都给0 , 那么函数会自己计算) 。高斯核可以有效的出去图像的高斯噪声 。当然也可以自己构造高斯核,相关函数:cv2.GaussianKernel().
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread(‘flower.jpg‘,0) #直接读为灰度图像
for i in range(2000): #添加点噪声
temp_x = np.random.randint(0,img.shape[0])
【python中的噪声函数 python 图像加噪声】temp_y = np.random.randint(0,img.shape[1])
img[temp_x][temp_y] = 255
blur = cv2.GaussianBlur(img,(5,5),0)
plt.subplot(1,2,1),plt.imshow(img,‘gray‘)#默认彩色,另一种彩色bgr
plt.subplot(1,2,2),plt.imshow(blur,‘gray‘)
random函数怎么用?在python语言中,random函数生成随机数,根据不同的方法生成不同范围的随机数 。那么random函数具体怎么使用 , 操作方法如下 。
1、首先在打开的软件中,random.random():返回一个随机数,范围是0到1之间 。
2、random.uniform():在指定范围内,生成随机数,一个是下限,另一个是上限 。
3、random.randint():生成指定范围内的整数 , 开始数和结束数 。
4、最后使用 random.randrange():在指定范围内,按指定基数递增的集合中获得一个随机数,这样就完成了 。
python中的噪声是什么意思白噪声是时间序列预测中的一个重要概念 。如果一个时间序列是白噪声,它是一个随机数序列,不能预测 。如果预测误差不是白噪声,它暗示了预测模型仍有改进空间 。
什么是白噪声时间序列?
时间序列可能是白噪声 。时间序列如果变量是独立的且恒等分布的均值为0 , 那么它是白噪声 。这意味着所有变量具有相同的方差 (sigma^2),并且每个值与该系列中的所有其他值具有零相关 。
如果序列中的变量被高斯分布绘制,则该系列称为高斯白噪声 。
为什么这么重要?
白噪声是时间序列分析和预测中的一个重要的概念 。
重要的两个主要原因为:
1.可预测性:如果你的时间序列是白噪声,那么根据定义它是随机的 。你无法对它合理的建模并进行预测 。
2.模型诊断:时间序列上一系列误差的预测模型最好是白噪声 。
模型诊断是时间序列预测的重要领域 。
时间序列数据在潜在的因素产生的信号上被预测 , 它包含一些白噪声成分 。
例如:
y(t)= signal(t)noise(t)
通过时间序列预测模型进行预测,可以对其进行收集和分析 。在理想情况下,预测误差应该是白噪声 。
当预测误差为白噪声时 , 意味着时间序列中的所有信号已全部被模型利用进行预测 。剩下的就是无法建模的随机波动 。
模型预测的信号不是白噪声则表明可以进一步对预测模型改进 。
你的时间序列白噪音吗?
你的时间序列如果符合下面条件则不是白噪声:
你的序列均值为零吗?
方差随时间变化吗?
值与延迟值相关吗?
你可以用一些工具来检查你的时间序列是否为白噪音:
创建一个折线图 。检查总体特征 , 如变化的平均值,方差或延迟变量之间的明显关系 。
计算汇总统计 。对照序列中有意义的连续块的均值和方差,检查整个序列的均值和方差(如年、月、日) 。
创建一个自相关的图 。检查延迟变量之间的总体相关性 。
白噪声时间序列的例子
在本节中,我们将使用Python创建一个高斯白噪声序列并做一些检查 。它有助于在实践中创建和评估白噪声时间序列 。它将提供参考框架和示例图并且使用和比较自己的时间序列项目的统计测试,以检查它们是否为白噪声
首先,我们可以使用随机模块的gauss()函数创建一个1,000个随机高斯变量的列表 。
我们将从高斯分布提取变量:平均值(mu)0.0和标准偏差(sigma)1.0 。
一旦创建,为方便起见 , 我们可以在Pandas序列中打包这个列表 。
from randomimport gaussfrom randomimport seedfrom pandasimport Seriesfrom pandas.tools.plottingimport autocorrelation_plot
# seed random number generatorseed(1)# create white noise series
series= [gauss(0.0,1.0)for iin range(1000)]series= Series(series)
接下来,我们可以计算和打印一些汇总统计数据,包含序列的平均值和标准偏差 。
# summary statsprint(series.describe())
鉴于我们在绘制随机数时定义了平均值和标准偏差,所以应该不会有意外 。
count1000.000000mean-0.013222std1.003685min-2.96121425%-0.68419250%-0.01093475%0.703915max2.737260
我们可以看到平均值接近0.0,标准偏差接近1.0 。考虑到样本较小预测会有些误差 。
如果我们有更多的数据 , 将序列分成两半计算和比较每一半的汇总统计可能会更有趣 。我们认为每个子系列的平均值和标准差都会相似 。
现在我们可以创建一些序列的线条图 。
# line plot
series.plot()pyplot.show()
我们可以看到,这个序列似乎是随机的 。
我们还可以创建直方图 , 并确认分布是高斯分布 。
# histogram plot
series.hist()pyplot.show()
事实上,直方图显示了典型的钟形曲线 。
最后,我们可以创建一个自相关图并检查延迟变量的所有自相关 。
# autocorrelationautocorrelation_plot(series)pyplot.show()
自相关图没有显示任何显著的自相关特征 。在峰值时可信度达在95%和99% , 但这只是统计的偶然情况 。
为了完整性,下面提供了完整的代码清单 。
from randomimport gaussfrom randomimport seedfrom pandasimport Seriesfrom pandas.tools.plottingimport autocorrelation_plotfrom matplotlibimport pyplot
# seed random number generatorseed(1)# create white noise series
series= [gauss(0.0,1.0)for iin range(1000)]series= Series(series)# summary statsprint(series.describe())# line plot
series.plot()pyplot.show()# histogram plot
series.hist()pyplot.show()# autocorrelationautocorrelation_plot(series)pyplot.show()
原文:网页链接
python里的问题,pywt.dwt(signal,'db1','sym')这个函数噪声能获取吗?好吧 。你可以试试减一减 。不过你的测试用例不太对 。尽量用有规律的数据去做 。
比如你可以做一个正弦函数 , 再人为的加上一点点扰动 。再做小波变换看看 。另外数据要多些 。太短的数据看不出效果来 。
至于变换后是两个4,我想等你数据弄多些就明白了 。数据多些 , 就容易做图 。你把变换后的数据变成图形,画出来 。可以用EXCEL来画 。
这样一对比就明白变换后的两个4数组是什么数据 。然后你就可以针对性的处理 。取得噪声也是可以的 。
通常来讲噪声是没有规律的 。但是不排除它是另外一种规律迭加上去的 。试试看 。
python中的噪声函数的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于python 图像加噪声、python中的噪声函数的信息别忘了在本站进行查找喔 。

    推荐阅读