scipy.ndimage.
质心#
- scipy.ndimage.center_of_mass(input, labels=None, index=None)[源代码][源代码]#
计算数组在标签处的值的质心。
- 参数:
- 输入ndarray
用于计算质心的数据。质量可以是正的或负的。
- 标签ndarray,可选
input 中对象的标签,由 ndimage.label 生成。仅在使用 index 时使用。维度必须与 input 相同。
- 索引int 或 int 序列,可选
用于计算质心的标签。如果未指定,将计算所有大于零的标签的组合质心。仅在使用 labels 时使用。
- 返回:
- 质心元组,或元组列表
质心的坐标。
示例
>>> import numpy as np >>> a = np.array(([0,0,0,0], ... [0,1,1,0], ... [0,1,1,0], ... [0,1,1,0])) >>> from scipy import ndimage >>> ndimage.center_of_mass(a) (2.0, 1.5)
图像中多个对象的计算
>>> b = np.array(([0,1,1,0], ... [0,1,0,0], ... [0,0,0,0], ... [0,0,1,1], ... [0,0,1,1])) >>> lbl = ndimage.label(b)[0] >>> ndimage.center_of_mass(b, lbl, [1,2]) [(0.33333333333333331, 1.3333333333333333), (3.5, 2.5)]
负质量也被接受,例如在由于随机噪声从测量数据中去除偏差时可能会出现负质量。
>>> c = np.array(([-1,0,0,0], ... [0,-1,-1,0], ... [0,1,-1,0], ... [0,1,1,0])) >>> ndimage.center_of_mass(c) (-4.0, 1.0)
如果存在除以零的问题,该函数不会引发错误,而是在返回 inf 和/或 NaN 之前发出 RuntimeWarning。
>>> d = np.array([-1, 1]) >>> ndimage.center_of_mass(d) (inf,)