python - 成像:将值替换为 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。
解决方案
根据 nipy 文档,该get_fdata()
方法返回一个 NumPy 数组,所以最简单的方法就是:
img = nib.load('/home/anja/aw.nii')
data = img.get_fdata()
data[data<0.9] = 0
print(data.shape)
推荐阅读
- c - 读取套接字缓冲区未读取
- javascript - ENOENT:没有这样的文件或目录
- mysql - 如何 INSERT INTO ... SELECT 从 2 个表到 1 个具有外键约束的表
- function - 使用 db 函数填充 Maximo 字段:为什么这是一种不好的做法?
- reactjs - create-react-app - 安装被中止
- excel - 如何将多个 CSV 文件从文件位置表 VBA 组合到工作表中?
- go - 参数和从位置 [1] 传递的参数(不是位置 0)
- c# - 下订单时如何向选定的卖家发送通知?
- c++ - C++ 中是否一直存在纯虚方法?
- python - 自定义回调不适用于 keras 模型