【问题标题】:Imaging: Replaces values by 0 over specific threshold成像:将值替换为 0 超过特定阈值
【发布时间】:2020-01-15 14:44:34
【问题描述】:

我有大小为 (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),只需将

【问题讨论】:

  • data是什么东西?熊猫数据框? numpy 数组?枕头图片?
  • 您的代码与您的目标不符,&lt;&gt; 混淆了
  • 哦,愚蠢的错误。当然是的
  • 我加载为 nifti
  • 你为什么使用== 0?你的意思是= 0

标签: python image nifti


【解决方案1】:

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

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

data = img.get_fdata()

data[data<0.9] = 0

print(data.shape)

【讨论】:

  • 这会返回一个大小为 1 的整数,设置为 0。我希望 NumPy 数组的大小为 (57, 66, 40),它在小于 0.9 之前的值为零..
  • 您是否在data[data&lt;0.9] = 0 之后打印了data.shape?它不是关于返回什么,而是关于数据变量本身的内容
猜你喜欢
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 2012-10-07
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多