问题标签 [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.
python - 如何将 3D numpy 数组转换为 nibabel 中的 nifti 图像?
从这个问题How to convert Nifti file to Numpy array? ,我创建了一个 nifti 图像的 3D numpy 数组。我对这个数组做了一些修改,比如我通过添加零填充来改变数组的深度。现在我想将此数组转换回 nifti 图像,我该怎么做?
我试过:
但它不能识别nii
扩展名。我也试过:
这也行不通,因为如果我想使用功能img
就必须这样做。在上面的两个例子中都是一个 3D numpy 数组。nibabel.nifti1.Nifti1Image
nib.save
img
python - 保存具有体素尺寸的 nibabel 图像
无法在 nibabel 的 NiftiHeader 中设置图像体素尺寸。如何为给定图像设置特定的体素尺寸?
我需要在 nibabel 中保存具有某些特定体素尺寸的图像。
如何使用一些新的体素尺寸保存成像器?
python - 如何在 python 中以 Nifti 格式编辑和保存体素大小和 3D 体积的相应仿射?
我正在更改一些 3D 体积的体素大小。如何编辑pixdim
字段并计算新的affine
?
我有一些各向异性的 MR 体积,例如,体素大小为0.5 x 0.5 x 3
mm。而且我有一些代码可以将它们插入到各向同性(如0.5 x 0.5 x 0.5
mm 体素大小)体积中。问题是当我需要保存文件时,我必须计算仿射以将 ijk 空间中现在更密集的体素映射到参考 xyz 空间。我怎么做?
首先,我的想法是使用旧仿射并计算新仿射。
例如,如果体积 V 具有具有体素大小的体素形状,256 x 256 x 20
并0.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_size
python-nibabel matlab-nifti-toolbox 等中没有功能。那是怎么回事?
如何显式更改体素大小?
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。
我使用的是旧版本的库,是吗?如何解决?
python-3.x - 如何使用 nibabel 修改 mgh/dicom/nifti 文件的方向
我很难为 3 个不同的视图(即冠状、轴向和矢状)找出适当的仿射变换,每个视图都有如下单独的问题:
1:轴向彩色图与矢状原始视图重叠。
2:同样,矢状彩色图与轴向原始图像重叠。
3:当日冕的颜色图和原始图像正确但方向错误时,每个人都有一些方向问题,比如在这里最容易看到。
我正在保存要发送到服务器以进行某种预测的原始文件,该文件会生成颜色图并返回该文件以进行可视化,稍后我将一起显示所有内容。
在预测后的服务器中,这里是保存文件的代码。
而仿射和标头是从我发送的文件中提取的原始仿射和标头。
我需要处理以 Numpy 数组格式保存原始数据的“idx”值,但不确定到底要做什么。在这里需要帮助。
正在努力使用nibabel python 库解决问题,但由于我对这些文件如何工作和仿射变换的了解非常有限,我很难弄清楚我应该怎么做才能使它们正确。
我在前端使用带有threejs支持的AMI js,在后端使用带有python的nibabel。任何地方的前端或后端解决方案都是可以接受的。
请帮忙。提前致谢。
python - 处理nii.gz时如何避免大数据问题?
我有nii.gz
每个文件的数据集,1G
包括4d
张量。我知道有两种阅读它们的方法,如下所示:
或者
问题是读取整个张量很昂贵,我只需要一片。还有其他方法吗?
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 数组,也许有人知道解决方法。
python - 在任意轴上迭代体积的更 Pythonic 方式?
我有一个函数,它接受一个 3D numpy 数组(我们将其称为卷),并将其转换为 2D 切片列表。我希望用户能够指定对其进行切片的轴。我用下面的代码管理这个,但是三重 if 语句似乎不是最优雅的方法。我会感谢人们对是否可以以更好的方式实现这一点的想法。