dm_region.py 文件源码

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

项目:dream2016_dm 作者: lishen 项目源码 文件源码
def prob_heatmap_features(phm, cutoff, k=1, nb_cls=3):
    fea_list = []
    if phm is None:  # deal with missing view.
        for _ in xrange(nb_cls - 1): # phms depending on the # of cls.
            fea = {'nb_regions': np.nan, 'total_area': np.nan, 
                   'global_max_intensity': np.nan}
            for j in xrange(k):
                reg_fea = {
                    'area': np.nan, 'area_ratio': np.nan, 'area_ratio2': np.nan,
                    'eccentricity': np.nan, 'eig1': np.nan, 'eig2': np.nan,
                    'equivalent_diameter': np.nan, 'euler_number': np.nan, 
                    'extent': np.nan, 
                    'major_axis_length': np.nan, 'max_intensity': np.nan,
                    'mean_intensity': np.nan, 'minor_axis_length': np.nan,
                    'orientation': np.nan, 'perimeter': np.nan,
                    'solidity': np.nan, 
                }
                for key in reg_fea.keys():
                    new_key = 'top' + str(j+1) + '_' + key
                    reg_fea[new_key] = reg_fea.pop(key)
                fea.update(reg_fea)
            fea_list.append(fea)
        return fea_list

    for i in xrange(1, nb_cls):
        phm_ = phm[:,:,i]
        hm_bin = np.zeros_like(phm_, dtype='uint8')
        hm_bin[phm_ >= cutoff] = 255
        hm_label = label(hm_bin)
        props = regionprops(hm_label, phm_)
        fea = {
            'nb_regions':len(props),
            'total_area':total_area(props),
            'global_max_intensity':global_max_intensity(props),
        }
        nb_reg = min(k, len(props))
        idx = topK_region_idx(props, k)
        for j,x in enumerate(idx):
            reg_fea = region_features(props[x])
            for key in reg_fea.keys():
                new_key = 'top' + str(j+1) + '_' + key
                reg_fea[new_key] = reg_fea.pop(key)
            fea.update(reg_fea)
        for j in xrange(nb_reg, k):
            reg_fea = region_features()
            for key in reg_fea.keys():
                new_key = 'top' + str(j+1) + '_' + key
                reg_fea[new_key] = reg_fea.pop(key)
            fea.update(reg_fea)
        fea_list.append(fea)
    return fea_list
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号