create_masks.py 文件源码

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

项目:SamuROI 作者: samuroi 项目源码 文件源码
def remove_small_blobs(centers_of_mass, segmentation_layer):
    """
    removes non-overlapping pixel-islands and cell centres (centers_of_mass)
    :param segmentation_layer: NxM ndarray image mask of all target objects
    :param centers_of_mass: a np ndarray of x,y coordinates for the center of each target object
    :return updated_labels:
    """
    labels, label_number = ndimage.label(segmentation_layer)  # label all pixel islands
    updated_labels = np.zeros_like(labels)
    centers_of_mass_to_keep = np.zeros(len(centers_of_mass))  # holder

    for i in range(label_number):
        idx = np.where(labels == i+1)
        for j, c in enumerate(centers_of_mass.astype(int)):
            if labels[c[0], c[1]] == i+1:  # if the center_of_mass is in the blob
                updated_labels[idx] = 1  # add the blob
                centers_of_mass_to_keep[j] = 1  # add the center_of_mass

    centers_of_mass_idx = np.where(centers_of_mass_to_keep == 1)
    updated_centers_of_mass = centers_of_mass[centers_of_mass_idx]

    return updated_labels, updated_centers_of_mass
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号