成像:将超过特定阈值的值替换为 0

Imaging: Replaces values by 0 over specific threshold

我有 float64 类型的数据,其大小为 (57, 66, 40)。我想用 0 替换所有小于 0.9 的值。

我尝试了没有循环的最简单的方法:

img = nib.load('/home/anja/aw.nii')

data = img.get_fdata()

threshold_data = data[data<0.9] == 0

但后来我得到 threshold_data 作为大小为 (55318,) 的 bool 类型。所以我失去了图像的尺寸。 有人可以帮助我如何做到这一点,我仍然有尺寸 (57, 66, 40) 的图像,只需将其中的值 <0.9 替换为 0.

根据 nipy 文档,get_fdata() 方法 returns 一个 NumPy 数组,所以最简单的方法就是:

img = nib.load('/home/anja/aw.nii')

data = img.get_fdata()

data[data<0.9] = 0

print(data.shape)