问题标签 [nibabel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6687 浏览

python - 如何将 3D numpy 数组转换为 nibabel 中的 nifti 图像?

从这个问题How to convert Nifti file to Numpy array? ,我创建了一个 nifti 图像的 3D numpy 数组。我对这个数组做了一些修改,比如我通过添加零填充来改变数组的深度。现在我想将此数组转换回 nifti 图像,我该怎么做?

我试过:

但它不能识别nii扩展名。我也试过:

这也行不通,因为如果我想使用功能img就必须这样做。在上面的两个例子中都是一个 3D numpy 数组。nibabel.nifti1.Nifti1Imagenib.saveimg

0 投票
1 回答
2187 浏览

python - 保存具有体素尺寸的 nibabel 图像

无法在 nibabel 的 NiftiHeader 中设置图像体素尺寸。如何为给定图像设置特定的体素尺寸?

我需要在 nibabel 中保存具有某些特定体素尺寸的图像。

如何使用一些新的体素尺寸保存成像器?

0 投票
1 回答
1295 浏览

python - 如何在 python 中以 Nifti 格式编辑和保存体素大小和 3D 体积的相应仿射?

我正在更改一些 3D 体积的体素大小。如何编辑pixdim字段并计算新的affine

我有一些各向异性的 MR 体积,例如,体素大小为0.5 x 0.5 x 3mm。而且我有一些代码可以将它们插入到各向同性(如0.5 x 0.5 x 0.5mm 体素大小)体积中。问题是当我需要保存文件时,我必须计算仿射以将 ijk 空间中现在更密集的体素映射到参考 xyz 空间。我怎么做?

首先,我的想法是使用旧仿射并计算新仿射。

例如,如果体积 V 具有具有体素大小的体素形状,256 x 256 x 200.5 x 0.5 x 3插入到具有体素大小的体积 U256 x 256 x 120体素中0.5 x 0.5 x 0.5

旧仿射会做[255 255 19]OA = [X Y Z],新仿射应该做[255 255 119]NA = [X Y Z],我们知道AX=B X=inverse(A)B

所以新的仿射应该是inverse([255 255 119])[X Y Z]。然而,逆矩阵只存在于方阵中。不会有这种事inverse([255 255 119])

似乎set_voxel_sizepython-nibabel matlab-nifti-toolbox 等中没有功能。那是怎么回事?

如何显式更改体素大小?

0 投票
0 回答
143 浏览

python-3.x - 使用 Deepbrain 库中的 Extractor 时出现错误“警告”消息

尝试使用 deepbrain 库中的 Etractor 时收到此错误(如下所示):

警告:tensorflow:来自 C:\Users\myname\Anaconda3\lib\site-packages\deepbrain\extractor.py:19:FastGFile。init(来自 tensorflow.python.platform.gfile)已弃用,将在未来版本中删除。更新说明:使用 tf.gfile.GFile。

我使用的是旧版本的库,是吗?如何解决?

0 投票
2 回答
2373 浏览

python-3.x - 如何使用 nibabel 修改 mgh/dicom/nifti 文件的方向

我很难为 3 个不同的视图(即冠状、轴向和矢状)找出适当的仿射变换,每个视图都有如下单独的问题:

1:轴向彩色图与矢状原始视图重叠。

在此处输入图像描述

2:同样,矢状彩色图与轴向原始图像重叠。

在此处输入图像描述

3:当日冕的颜色图和原始图像正确但方向错误时,每个人都有一些方向问题,比如在这里最容易看到。

在此处输入图像描述

我正在保存要发送到服务器以进行某种预测的原始文件,该文件会生成颜色图并返回该文件以进行可视化,稍后我将一起显示所有内容。

在预测后的服务器中,这里是保存文件的代码。

仿射标头是从我发送的文件中提取的原始仿射和标头。

我需要处理以 Numpy 数组格式保存原始数据的“idx”值,但不确定到底要做什么。在这里需要帮助。

正在努力使用nibabel python 库解决问题,但由于我对这些文件如何工作和仿射变换的了解非常有限,我很难弄清楚我应该怎么做才能使它们正确。

我在前端使用带有threejs支持的AMI js,在后端使用带有python的nibabel。任何地方的前端或后端解决方案都是可以接受的。

请帮忙。提前致谢。

0 投票
1 回答
571 浏览

python-3.x - 如何使用 nibabel 或 numpy 或其他方式更改医学体积数据中的 pixDim?

我正在尝试训练一个模型,其中一组数据包含特定的 pixDim,而另一组包含不同的 pixDim。我想标准化体素分辨率并执行。

我们可以使用 nibabel 或任何其他 python 库更改体积数据(如 .nifti.gz 或 .mgz 文件)的 pixDim 维度吗?

作为参考,我在下图中突出显示的体积文件的标题中谈论 pixDim。

在此处输入图像描述

0 投票
2 回答
1186 浏览

python - 如何从 MRI 图像中删除模态 - Python Nibabel

我正在尝试将 MRI 脑成像数据用于深度学习模型。目前我的图像有 4 个维度,如下所示,但我只想保留 MRI 图像的 T1c 模态,因为我的模型输入应该只是 1 通道 3D MRI (T1c)。

我确实尝试过使用 Nibabel 包,如下所示

这将返回以下输出

在此处输入图像描述

我还粘贴了“a”的标题信息

在此处输入图像描述

由此,哪个维度用于识别 MRI 模态,如(T1、T2、T1c、FLAIR 等)?以及我怎样才能只保留 T1c?你能帮忙吗?

0 投票
1 回答
310 浏览

python - 处理nii.gz时如何避免大数据问题?

我有nii.gz每个文件的数据集,1G包括4d张量。我知道有两种阅读它们的方法,如下所示:

或者

问题是读取整个张量很昂贵,我只需要一片。还有其他方法吗?

0 投票
1 回答
655 浏览

python - 在 nifti 文件中保存具有复杂组件的矢量

我生成一个 4D 复杂的 numpy 数组,例如:

我想将 numpy 数组保存为 nifti 文件

我尝试使用 vtk 和 SimpleITK,但它们都不支持复数(只有实数向量)似乎只有 nibabel 支持复数向量,我设法保存文件,但我只能用 nibabel 加载它,当我尝试使用 ITK-SNAP 或 Slicer 加载它时,它不会打开。我知道 ITK-SNAP 可以打开 nifti 文件的复杂向量,因为我已经使用 matlab 将这些文件与另一个脚本一起保存

nibabel 保存尝试:

SimpleITK 保存尝试:

vtk 保存尝试:

尼巴​​贝尔输出:

nibabel 创建一个带有矢量的 nifti 文件,但使用其他程序(如 ITK-SNAP)它不会打开

ITK-SNAP 错误:

SimpleITK 错误:

vtk 输出:

vtk 创建了一个矢量 nifti 文件,但有 6 个组件而不是 3 个(也将虚部视为组件),我在 numpy_to_vtk 的文档中看到它不支持 coplex 数组,也许有人知道解决方法。

0 投票
3 回答
94 浏览

python - 在任意轴上迭代体积的更 Pythonic 方式?

我有一个函数,它接受一个 3D numpy 数组(我们将其称为卷),并将其转换为 2D 切片列表。我希望用户能够指定对其进行切片的轴。我用下面的代码管理这个,但是三重 if 语句似乎不是最优雅的方法。我会感谢人们对是否可以以更好的方式实现这一点的想法。