MR 的几种归一化方法总结

1、nMax = data.max() nMin = data.min() nDis = nMax-nMin data = (data-nMin)/nDis

Refimg = sitk.ReadImage(os.path.join(NII_DIR, 'first_follow_up_T1.nii.gz'))
data = sitk.GetArrayFromImage(Refimg)
nMax = data.max()
nMin = data.min()
nDis = nMax-nMin
data = (data-nMin)/nDis

#normalize_data_storage(data)
out = sitk.GetImageFromArray(data)
out.SetSpacing(Refimg.GetSpacing())
out.SetOrigin(Refimg.GetOrigin())
sitk.WriteImage(out, os.path.join(NII_DIR, 'first_baseline_NCCT.nii.gz'))

2、data -= mean[:, np.newaxis, np.newaxis, np.newaxis] data /= std[:, np.newaxis, np.newaxis, np.newaxis]

def normalize_data(data, mean, std):
    # data:[4,144,144,144]
    data -= mean[:, np.newaxis, np.newaxis, np.newaxis]
    data /= std[:, np.newaxis, np.newaxis, np.newaxis]
    return data


def normalize_data_storage(data_storage):
    means = list()
    stds = list()
    # [n_example,4,144,144,144]
    for index in range(data_storage.shape[0]):
        # [4,144,144,144]
        data = data_storage[index]
        # 分别求出每个模态的均值和标准差
        means.append(data.mean(axis=(1, 2, 3)))
        stds.append(data.std(axis=(1, 2, 3)))
    # 求每个模态在所有样本上的均值和标准差[n_example,4]==>[4]
    mean = np.asarray(means).mean(axis=0)
    std = np.asarray(stds).mean(axis=0)
    for index in range(data_storage.shape[0]):
        # 根据均值和标准差对每一个样本归一化
        data_storage[index] = normalize_data(data_storage[index], mean, std)
    return data_storage

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

COSummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值