首页 > 解决方案 > 成像:将值替换为 0 超过特定阈值

问题描述

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

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

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

data = img.get_fdata()

threshold_data = data[data<0.9] == 0

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

标签: pythonimagenifti

解决方案


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

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

data = img.get_fdata()

data[data<0.9] = 0

print(data.shape)

推荐阅读