voxel_extract.py 文件源码

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

项目:data-science-bowl-2017 作者: tondonia 项目源码 文件源码
def extract_voxels(images,pred_1,truths=None):
    eroded = morphology.erosion(pred_1,np.ones([3,3,3]))
    dilation = morphology.dilation(eroded,np.ones([3,3,3]))
    labels = measure.label(dilation) # Different labels are displayed in different colors
    label_vals = np.unique(labels)
    regions = measure.regionprops(labels)
    kept = 0
    removed = 0
    data = []
    for idx in range(len(regions)):
        b = regions[idx].bbox
        if regions[idx].area < 50:
            removed += 1
            continue
        kept += 1
        print "before->",b
        b = get_bounding_box(b,images.shape)
        print "after->",b
        image_voxel = images[b[0]:b[3],b[1]:b[4],b[2]:b[5]]
        label = 0
        if not truths is None:
            print "finding region in truths"
            truth_voxel = truths[b[0]:b[3],b[1]:b[4],b[2]:b[5]]
            nonzeros = np.count_nonzero(truth_voxel)
            if nonzeros > 0:
                label = 1
        assert(image_voxel.size==(VOXEL_DEPTH*VOXEL_DEPTH*VOXEL_DEPTH))
        print "Appending voxel with label ",label
        data.append((image_voxel,label,b))
    print "kept",kept,"removed",removed
    sys.stdout.flush()            
    return data
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号