distances.py 文件源码

python
阅读 37 收藏 0 点赞 0 评论 0

项目:LabelsManager 作者: SebastianoF 项目源码 文件源码
def centroid(im, labels, return_mm3=True):
    """
    Centroid (center of mass, barycenter) of a list of labels.
    :param im:
    :param labels: list of labels, e.g. [3] or [2, 3, 45]
    :param return_mm3: if true the answer is in mm if false in voxel indexes.
    :return: list of centroids, one for each label in the input order.
    """
    centers_of_mass = centroid_array(im.get_data(), labels)
    ans = []
    if return_mm3:
        for cm in centers_of_mass:
            if isinstance(cm, np.ndarray):
                ans += [im.affine[:3, :3].dot(cm.astype(np.float64))]
            else:
                ans += [cm]
    else:
        for cm in centers_of_mass:
            if isinstance(cm, np.ndarray):  # else it is np.nan.
                ans += [np.round(cm).astype(np.uint64)]
            else:
                ans += [cm]
    return ans
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号