草庐IT

高斯滤波

全部标签

python - 编写集成高斯函数的 Python 函数的最佳方法?

在尝试使用scipy的quad方法对高斯积分(假设有一种名为gauss的高斯方法)时,我在将所需参数传递给高斯并让quad对正确变量进行积分时遇到了问题。有没有人有一个很好的例子来说明如何使用带有多维函数的四边形?但这让我想到了一个更宏大的问题,即整合高斯的最佳方法。我没有在scipy中找到高斯积分(令我惊讶)。我的计划是编写一个简单的高斯函数并将其传递给quad(或者现在可能是一个固定宽度的积分器)。你会怎么办?编辑:固定宽度的意思是像trapz一样使用固定的dx来计算曲线下的面积。到目前为止,我想到的是一个方法make___gauss,它返回一个lambda函数,然后可以进入qua

python - 不规则间隔点的高斯和滤波器

我有一组点(x,y)作为两个向量x,y例如:frompylabimport*x=sorted(random(30))y=random(30)plot(x,y,'o-')现在我想用高斯平滑此数据,并仅在x轴上的某些(规则间隔的)点对其进行评估。让我们说:x_eval=linspace(0,1,11)我得到的提示是这种方法称为“高斯求和滤波器”,但到目前为止我还没有在numpy/scipy中找到任何实现,尽管乍一看这似乎是一个标准问题。由于x值的间距不等,我无法使用scipy.ndimage.gaussian_filter1d。通常这种平滑是通过furrier空间并与内核相乘完成的,但我真

python - 将多元高斯分布拟合到给定的数据集

我需要拟合多元高斯分布,即为python中给定的音频特征数据集获取最近的多元高斯分布的均值向量和协方差矩阵。音频特征(MFCC系数)是一个NX13矩阵,其中N约为4K。有人可以在python中概述适合高斯数据的包和技术吗? 最佳答案 使用numpy包。numpy.mean和numpy.cov会给你高斯参数估计。假设您有13个属性,N是观察次数,您需要在调用numpy.cov时设置rowvar=0Nx13矩阵(或将矩阵的转置作为函数参数传递)。如果你的数据在numpy数组data中:mean=np.mean(data,axis=0)c

python - 图像直方图的高斯混合模型

我正在尝试根据像素强度值对2DMR图像的不同区域进行自动图像分割。第一步是在图像的直方图上实现高斯混合模型。我需要将通过score_samples方法获得的结果高斯绘制到直方图上。我尝试按照(UnderstandingGaussianMixtureModels)的答案中的代码进行操作。但是,生成的高斯分布与直方图完全不匹配。如何让高斯匹配直方图?importnumpyasnpimportcv2importmatplotlib.pyplotaspltfromsklearn.mixtureimportGaussianMixture#Readimageimg=cv2.imread("test

python - 在 matplotlib 中绘制双变量高斯分布

我们如何绘制(在pythonmatplotlib中)双变量高斯分布,给定它们的中心和协方差矩阵作为numpy数组?假设我们的参数如下:center1=np.array([3,3])center2=np.array([5,5])cov1=np.array([[1.,.5],[.5,.1]])cov2=np.array([[.2,.5],[.5,.2]]) 最佳答案 这是图库中的示例:http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/contour_demo.py

python - 高斯的傅立叶变换不是高斯,但那是错误的! - Python

我正在尝试使用Numpy的fft函数,但是当我给函数一个简单的高斯函数时,该高斯函数的fft不是高斯函数,它很接近但减半,因此每一半都位于x轴的两端.我正在计算的高斯函数是y=exp(-x^2)这是我的代码:fromcmathimport*fromnumpyimportmultiplyfromnumpy.fftimportfftfrompylabimportplot,show"""Basicallythestandardrange()functionbutwithfloatsupport"""deffrange(min_value,max_value,step):value=float

python - 多维高斯过程回归的训练超参数

这是一个代码的简单工作实现,我在Python的scikit-learn中使用高斯过程回归(GPR),具有二维输入(即x1和x2上的网格)和一维输出(y)。importnumpyasnpfrommatplotlibimportpyplotaspltfromsklearn.gaussian_processimportGaussianProcessRegressorfromsklearn.gaussian_process.kernelsimportRBF,ConstantKernelasCfrommpl_toolkits.mplot3dimportAxes3D#Exampleindepend

python - 如何在 python 中平滑具有不同高斯函数的二维数组的元素?

如何平滑数组的x[1,3]和x[3,2]元素,x=np.array([[0,0,0,0,0],[0,0,0,1,0],[0,0,0,0,0],[0,0,1,0,0],[0,0,0,0,0]])有两个宽度分别为1和2的二维高斯函数?本质上,我需要一个函数,它允许我使用不同宽度的高斯平滑单个“点状”数组元素,这样我就可以得到一个具有平滑变化值的数组。 最佳答案 我对你提出的问题和你发表的评论有点困惑。在我看来,您想使用scipy.ndimage.filters.gaussian_filter但我不明白你的意思:[...]gaussian

Python加载数据并进行多高斯拟合

我一直在寻找一种方法来对我的数据进行多重高斯拟合。到目前为止,我发现的大多数示例都使用正态分布来生成随机数。但我有兴趣查看我的数据图并检查是否有1-3个峰值。我可以对一个峰执行此操作,但我不知道如何对更多峰执行此操作。例如,我有这个数据:http://www.filedropper.com/data_11我尝试过使用lmfit,当然还有scipy,但没有很好的结果。感谢您的帮助! 最佳答案 简单地制作单个高斯总和的参数化模型函数。为您的初始猜测选择一个合适的值(这是非常关键的一步),然后让scipy.optimize稍微调整这些数字

python - 在python中创建所需长度的高斯滤波器

谁能建议哪个库支持创建所需长度和sigma的高斯滤波器?我基本上需要以下matlab函数的等效函数:fltr=fspecial('gaussian',[1n],sd) 最佳答案 简单的一维高斯不需要库。frommathimportpi,sqrt,expdefgauss(n=11,sigma=1):r=range(-int(n/2),int(n/2)+1)return[1/(sigma*sqrt(2*pi))*exp(-float(x)**2/(2*sigma**2))forxinr]注意:这将始终返回一个以0为中心的奇数长度列表。我