mask.py 文件源码

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

项目:dsb-2017 作者: anlthms 项目源码 文件源码
def get_mask(image, uid):
    mask = np.array(image > -320, dtype=np.int8)
    # Set the edges to zeros. This is to connect the air regions, which
    # may appear separated in some scans
    mask[:, 0] = 0
    mask[:, -1] = 0
    mask[:, :, 0] = 0
    mask[:, :, -1] = 0
    labels = measure.label(mask, connectivity=1, background=-1)
    vals, counts = np.unique(labels, return_counts=True)
    inds = np.argsort(counts)
    # Assume that the lungs make up the third largest region
    lung_val = vals[inds][-3]
    if mask[labels == lung_val].sum() != 0:
        print('Warning: could not get mask for %s' % uid)
        mask[:] = 1
        return mask

    mask[labels == lung_val] = 1
    mask[labels != lung_val] = 0
    fill_mask(mask)
    left_center = mask[mask.shape[0] // 2, mask.shape[1] // 2, mask.shape[2] // 4]
    right_center = mask[mask.shape[0] // 2, mask.shape[1] // 2, mask.shape[2] * 3 // 4]
    if (left_center == 0) or (right_center == 0):
        print('Warning: could not get mask for %s' % uid)
        mask[:] = 1
        return mask

    mask = ndimage.morphology.binary_dilation(mask, iterations=settings.mask_dilation)
    return mask
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号