假设我有一些numpy数组(在这种情况下它代表一个100x100的二进制图像)......
img=np.random.randint(0,2,(100,100)).astype(numpy.uint8)
如何最好地确定数组中1个值的“平均位置”?例如,如果阵列中有一个1的簇,我想找到该簇的中心。
答案 0 :(得分:1)
我发现你也将此标记为numpy
,所以我会这样做:
x = range(0, img.shape[0])
y = range(0, img.shape[1])
(X,Y) = np.meshgrid(x,y)
x_coord = (X*img).sum() / img.sum().astype("float")
y_coord = (Y*img).sum() / img.sum().astype("float")
这会给你加权平均中心。
如果你想在图像中的每个1的簇中使用它,我建议你使用连通的组件来掩盖你感兴趣的簇。可能不是一个好主意为你想要的任意数量的簇重复这个过程,但是而是在同一个数组遍历中计算所有集群平均值。