问题标签 [nifti]

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 回答
1922 浏览

python - Nibabel 库中的 get_data 和 get_fdata 有什么区别?

我正在与 Nibabel 一起阅读一些 .nii 文件。我遇到了不同的示例,其中一些使用 get_data() 函数,而其中一些使用 get_fdata() 函数。我在他们的文档( nibabel manuel)中找不到什么区别。谁能解释一下?

提前致谢。

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 投票
1 回答
161 浏览

itk - 如何修复 nifti 图像尺寸以匹配?

我无法将分割图像与主图像一起上传我在处理后得到分割图像(输出测试),其中主图像和分割图像的尺寸不相同但我想将主图像与分割图像结合任何解决方案请将分割图像与主图像匹配?

我尝试匹配显示的消息是“分割图像的大小与主图像图像的大小不匹配图像必须具有相同的尺寸”在此处输入图像描述

0 投票
1 回答
571 浏览

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

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

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

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

在此处输入图像描述

0 投票
1 回答
803 浏览

image - 如何使用 ADNI 数据集将 ImageDataGenerator 与 nii/NIFTI 文件一起使用

我正在尝试使用 keras 的 ImageDataGenerator 类加载我的数据,但我遇到了麻烦,因为图像文件不是标准的 jpeg/png 图像文件,而是 nii.gz 文件。我找到了这个 github repo https://github.com/sremedios/nifti_image_generator/blob/master/utils/nifti_image.py但输出的尺寸不匹配并且

引发错误

0 投票
1 回答
96 浏览

numpy - input reshape problem about using tf.layers.conv3d

I'm a little bit confusing about the reshape problem of tf.layers.conv3d, the input require shape is (batch, depth, height, width, channels), and now my input data is .nii file(a heart CT scan), which shape is (512, 512, depth), the third dimension represent the heart slices(each slice is 512x512). there are different depth in different patients.

The question is if I try to reshape the data to (depth, 512, 512) in order to fit the conv3d input, the corresponding items of each slice(512x512) will be different.Will this get a influence to training? Or is any method to remain the same items in each slice?

assume that there are 8 slices in heart scan, and there are 2*2 images in each slices.The x[:,:,0] will be ([[0,8],[16,24]]), another one is ([[0,1],[2,3]]). so there are different items in different slices.

I am just wonder whether there exist some method to reshape into(depth, height, width) and keep remain the same items in each slice. or it doesn't matter if i feed this into tensorflow conv3d layer?

0 投票
0 回答
320 浏览

python-3.x - Learner.export() 问题:不能腌制在 0x……..>:它与 __main__ 不是同一个对象。

我是快速人工智能的新手。我为数据束定义了我自己的转换 pad3d,并使用我自己的自动编码器模型创建和训练了一个学习器。但是当我们要导出学习者时,我遇到了一个错误:

我看过这两个帖子

https://forums.fast.ai/t/learn-export-not-working-with-gans/42195/12

https://github.com/fastai/fastai/issues/1540

在后一篇文章中,我觉得是因为我的代码包含自定义函数如下:

我在导出之前重新运行了函数的定义,但它也可以正常工作。那里似乎没有一个可以帮助我解决我的问题。

任何人都可以帮助解决这个问题非常感谢。

0 投票
1 回答
119 浏览

python - 如何在不加载 fMRI 大数据的情况下访问 .nii (NIFTI) 格式的单个时间样本?

我可以访问拥有 1000 多个文件的 The Human Connectome Project数据。.nii为了分析它们,我需要将它们加载为一个占用大量内存的 numpy 数组。例如,考虑以下代码:

最后一行给出了一个 4d 张量,其中最后一个轴是时间。由于epi_data是 numpy 格式,我们可以通过将其转换为张量来使用它来训练神经网络,但为此我们需要加载总数据,5Gb这只是 1000 中的一个。但是,如果我能打破这 1200时间样本到 1200.nii我将能够加载感兴趣的样本。有没有办法.nii从原始文件中提取 1200。