我有一個具有未知位置的嘈雜的非正常二維高斯數組,以及未知的均值和方差。我怎樣才能計算高斯的中心位置和它的寬度和高度在一定的置信水平?檢索二維高斯數組的位置信息
對於樣品的情況下像一個完美的普通2D高斯:
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()
每個像素獲得的中心位置,但嘈雜的情況下,我可能需要使用arg.max()
每個3x3
大小的像素來穩健地計算中心。我如何用python實現這一點?
我不知道如何計算寬度和高度。我也在考慮使用一些基於密度的聚類方法來提供位置信息,例如scikit-learn的DBSCAN,但不知道如何實際操作。
非常感謝提前!
啓發看看[這裏](http://stackoverflow.com/questions/21566379/fitting-a-2d-gaussian-function-using-scipy-optimize-curve -fit-valueerror-and -m) – Aaron
這正是我所需要的!謝謝亞倫! – Xer