【发布时间】:2017-03-11 10:11:39
【问题描述】:
我有一个嘈杂的非正态二维高斯数组,位置未知,均值和方差未知。如何在一定的置信水平下计算高斯的中心位置及其宽度和高度?
对于像完美正态二维高斯这样的样例:
def gauss2d(shape=(200,200),sigma=20):
m,n = [(ss-1.)/2. for ss in shape]
y,x = np.ogrid[-m:m+1,-n:n+1]
h = np.exp( -(x*x + y*y) / (2.*sigma*sigma) )
h[ h < np.finfo(h.dtype).eps*h.max() ] = 0
h = h / h.max()
return h[:150, :150]
skimage.io.imshow(gauss2d()) # it looks like the following
我可以使用每个像素的arg.max() 来获取中心位置,但对于嘈杂的情况,我可能需要使用每个3x3 大小的像素的arg.max() 来稳健地计算中心。我怎样才能用 python 实现呢?
我不知道如何计算宽度和高度。我也在考虑使用一些基于密度的聚类方法来提供位置信息,例如 scikit-learn 的 DBSCAN,但不知道如何实际操作。
非常感谢!
【问题讨论】:
-
看看this
-
这正是我所需要的!谢谢亚伦!
标签: python numpy gaussian data-fitting