问题标签 [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.
matlab - 将一个 Nifti 标头复制到另一个
我在 matlab 中有一个“prob_map”变量(概率图),我想将它保存为“.nii”格式。我用两行代码做到了:
这已成功完成,但标题信息与我名为“img.nii”的原始 CT 图像不兼容(因此在 ITK-SNAP 软件中,无法在图像上覆盖 prob_map)。我想在保存之前将 img.nii 的标头复制到“prob.nii”标头。事实上,我想尽可能地复制一个人的标题。例如,无法复制标题大小,而可以复制方向和其他信息。是否有任何功能可以在保存 nii 之前将一个标题复制到另一个?必须复制哪些信息才能使两个nii保持相同?
amazon-web-services - Amazon Web Service:使用非 csv 数据并检索经过训练的模型
我正在考虑将 AWS 与机器学习 AMI 一起使用来训练一些对我的硬件设置来说速度较慢的深度网络。
但是,我目前看到两个可能的主要问题可能会使此选项不那么有趣甚至不可能。
训练数据不是 csv 格式,而是 nifti 格式的图像。在 AWS 描述中,声明数据必须为 .csv。
此外,FAQ 指出无法提取经过训练的模型。这意味着必须根据 AWS 中的实例进行所有子顺序推理和测试?
这两个问题都是真的吗?
python - Nrrd 到 Nifti 文件的转换
我希望将 ~1000 个.nrrd
文件转换为 Nifit ( .nii.gz
) 格式。我一直在使用3DSlicer的ResampleScalarVectorDWIVolume
命令行模块来完成这项任务。但是这个过程真的很慢。转换我系统上的每个文件大约需要 4 分钟。我想知道人们使用什么工具进行此类转换?
python - 访问 .zip 存档中的文件而不提取它们
我正在尝试读取 .zip 中的 NIFTI 文件,而无需将目录提取到根目录。更具体地说,我正在使用 ADNI 数据库,文件按 subjectID 存储在单独的 .zip 文件中。在 .zip 文件中包含与该主题相关的所有数据,我想从 .zip 中提取 NIFTI 文件(.nii.gz)而不提取文件。
目前我有以下代码片段
文件路径是 .zip 文件集合的路径。文件名是 .zip 文件中我要提取的 NIFTI 文件的路径。
(编辑)
似乎错误来自 nibabel 加载功能。然后功能检查
在独立测试 os.path.exists(filename) 函数后,我发现了这一点。
错误的
但是,此路径是从我尝试打开的文件中复制/粘贴的。在我看来,由于文件路径中的 .zip 出现错误,因为
真的
还有另一种方法吗?
python - 在 python 中从 3d 数组创建一个 .obj 文件
我的目标是使用 python 从漂亮的 (.nii) 格式获取 .obj 文件,目的是在 Unity 上打开它。我知道“scikit-image”包有一个名为“measure”的模块,它实现了 Marching cube 算法。我将行进立方体算法应用于我的数据,并获得了我期望的结果:
然后我可以绘制数据:
我一直在寻找将数据(顶点、面法线、值)保存为 .obj 的函数,但我还没有找到。因此,我决定自己建造它。
但是当我将数据导入统一时,我得到了以下结果:
所以我的问题如下:
- 我在 .obj 制作过程中做错了什么?
- 是否有一个模块或功能可以更好地做到这一点?
- 有可能做我想做的事吗?
谢谢你。
更多示例:
Python:
统一:
animation - 如何在仅 CPU 模式下在没有 GUI 交互的情况下 3d 渲染 nifti 文件表面?
我的目标是为大量 nifti 格式的 mri 扫描创建 3d 表面渲染。该过程需要完全自动化并在仅 CPU 模式下无需 GUI 交互即可运行,因为脚本应该在 docker 容器中运行。有没有一个包来实现这一点?
如果我可以为结果设置动画以围绕不同的视角旋转,那就太好了。就像这里的本教程一样,不幸的是需要 GUI 交互: https ://mollermara.com/blog/blender-brain/
matlab - 将函数应用于(尽可能少的循环)从MATLAB中多个结构(nifti)的子字段获取的给定元素/体素(x,y,z)?
我有一个 nifti (.nii) 图像的数据集。理想情况下,我希望能够从每个图像中获取相同体素/元素的值,并将函数应用于 n 个数据点。我想为整个图像中的每个体素/元素执行此操作,以便我可以将结果重新转换回 .nii 格式。
我使用NIfTI 和 ANALYZE 图像工具箱的工具来加载我的图像:
我从中获得了一个结构对象,每个子字段都包含一个已加载的 nifti。其中每一个都有一个与我要处理的图像数据相对应的子字段“img”。问题来自于尝试在 data(1) 到 data(n) 的每个 img 字段中选择给定的 xyz。正如我发现的那样,不可能以这种方式进行选择:
或者
因为matlab不支持。第一个括号的内容必须是标量才能使调用起作用。谷歌搜索的解决方案似乎是一个创建临时变量的循环:
这可行,但是对于给定大小为 nx、ny、nz(每个数百个)的一组图像需要太长时间(几天)。
我一直在寻找加快代码速度的解决方案,我相信这取决于通过矢量化删除这些循环,预选 img 字段(通过 getfield ?)并将它们连接起来,并应用诸如 arrayfun/cellfun/structfun 之类的东西,但我坦率地说,我对如何做到这一点有点迷失。我只能想办法预先选择哪些自己需要循环,这似乎违背了练习的目的(尽管循环较少或至少嵌套循环较少的解决方案可能会这样做),或者对同一个问题感兴趣像 data(:).img(x,y,z) 这样的调用不起作用。再次谷歌搜索正在抛出选择和连接结构内的字段或跨多个结构的给定字段的方法。但我找不到任何问题:从结构对象的子结构中的非标量子字段中选择一个元素(循环最少)。最后,我需要输出采用矩阵的形式,上面的工具箱可以将其转换回 nifti。
非常感谢任何和所有建议、线索、提示和帮助!
matlab - MATLAB 中 load_untouch_nii 给出的 img 矩阵中的值的格式是什么?
我正在使用 MATLAB 处理 NIFTI (.nii) 格式的 MRI 扫描。我的代码如下:
其中 filename_unzip_pha 是 .nii 格式的原始相位 MRI 扫描的名称。根据文档,pha_nii.img 是 nifti 数据的 3D 矩阵。但是,我不知道这些值的格式/它们的单位是什么,我需要将其转换为复杂的数据类型。
告诉我它是 int16 类型,但我不知道这个数据的单位。我见过的一种方法执行以下转换为复杂的方法:
但我不知道这是在做什么。如果有人有任何见解,将不胜感激!
编辑:load_untouch_nii 是一个用于 NIFTI 处理的 MATLAB 函数——请参阅此处的文档:https://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/8797/versions/28/previews/load_untouch_nii.m/index。 html?access_key=
matlab - 如何对 nifti 图像进行仿射变换?
当我niftiinfo
用于提取 nifti 图像的信息时,出现以下错误。是否可以进行仿射变换以便 niftiinfo 正常工作
使用 affine3d/set.T 时出错(第 340 行) 仿射变换矩阵的最后一列必须由零组成,除了最后一行中的一。
affine3d 中的错误(第 117 行)self.T = A;images.internal.nifti.niftiImage/getXForm 中的错误(第 506 行) xform = affine3d([R zeros(3,1); T 1]');
images.internal.nifti.niftiImage/simplifyStruct 中的错误(第 162 行)[XformName, Xform] = self.getXForm();
niftiinfo 中的错误(第 50 行) simpleStruct = NV.simplifyStruct();
matlab 2018b 产量