图像缩略图

NIfTI和分析图像的工具

版本1.27.0.0(426 kB) 吉米沉
加载,保存,制作,Reslice,View(和编辑)NIFTI和分析任何平台上的数据
4.5
95年评级

514下载

更新2014年1月22日

查看许可证

编者按:受欢迎的文件2018年

请随时查看NIfTI_tools.pdf的详细描述和最新更新。

如果您对ANALYZE图像的左/右感到困惑,请阅读UseANALYZE.pdf。

您可能还想通过FAQ.PDF进行实际解决方案和实际示例。万博 尤文图斯

基本程序:

1. load_untouch_header_only.m:仅加载NIFTI或Analyze文件的标题部分。将自动检测到输入文件。NIFI结构将返回NIFI文件,并将返回分析结构进行分析文件。

2.load_nii。m:加载N维NIfTI文件(其中N可以从3到7)或ANALYZE文件(其中N可以从3到4),并应用头部信息(如仿射几何变换,体素强度缩放等)到数据。如果您的文件超过3维(例如时间序列等),您也可以指定一个范围,只提取1或几个卷。

3.save_nii。m:保存由“load_nii. m”加载的N维NIfTI结构(N可以从3到7)。或由make_nii制造。m”,进入NIfTI文件。

4. make_nii.m:基于n维矩阵和其他可选参数(例如voxel_size,原点等)制作n维NIFI结构(其中n可以为3到7)。使用“save_nii”命令,“make_nii”制作的nifti结构可以保存到nifti文件中。

5. make_ana.m:基于3D矩阵和其他可选参数(例如Voxel_size,Origin等)进行3D分析结构。使用“save_untouch_nii”命令,“make_ana”制作的分析结构可以保存到分析文件中,以便与某些分析仅兼容程序。

6. Reslice_nii.m:重新示例3D(或4d)nifti文件,或分析带有仿射矩阵m的文件.mat文件,并将重新采样的数据保存到新的nifti文件中。该程序将基于仿射矩阵,这对于具有不能加载的非正交旋转或剪切的倾斜图像特别有用,这些旋转或不能加载“Load_NII.m”。您还可以指定Voxel_Size等。它不会引起负面影响,只要您记得在使用“Reslice_nii.m”后不做切片时间校正。

7. PAD_NII.M:从六个边中的任何一个填充NIFI结构中的卷,同时保持发起者,体素大小,数据类型和描述不变。在使用Reslice_nii之后,该程序特别有用,因为新卷很可能具有不同的尺寸。

8.剪辑_NII.M:将NIFI结构中的卷从六个边中的任何一个剪切,同时保持发起者,体素大小,数据类型和描述不变。在使用Reslice_nii之后,该程序特别有用,因为新卷很可能具有不同的尺寸。

9.view_nii。m:查看和编辑3D(或4D) NIfTI或分析结构,由“load_nii. m”加载。或由make_nii.m制作。激活图、ROI等可以叠加在背景图像上(见上图)。绘制的视图可以嵌入到现有的图形窗口中。如果您将其作为一个单独的程序使用,它还可以编辑图像的方向和体素值,查看体积直方图,并保存修改后的图像。

10.load_untouch_nii。m:加载N维NIfTI文件(N可以从3到7)或ANALYZE文件(N可以从3到4),但不应用头部指示的任何更改。警告:不要使用"view_nii. "以查看由load_untouch_nii.m加载的结构。

11.save_untouch_nii。m:保存由“load_untouch_nii. m”加载的N维NIfTI结构(N可以从3到7)或ANALYZE结构(N可以从3到4)。或由make_ana制作。m”转换成一个新的NIfTI或ANALYZE文件。如果不修改加载的数据集,则新保存文件中的头和数据应与原始文件中的头和数据相同。

其他项目:

1.collapse_nii_scan。m:将多个单扫描NIfTI或ANALYZE文件集成到一个多扫描NIfTI文件中。

2. expand_nii_scan.m:将多扫描NIFTI文件中断到多个单扫描NIFTI文件中。

3. save_untouch_slice.m:保存回原始图像,其中包含由load_untouch_nii加载的一部分切片。只要没有更改它们的维度,您可以以任何方式处理这些切片矩阵。

4. get_nii_frame.m:返回nifti文件的时间帧数。

5.flip_lr。m:沿平面左右翻转NIfTI或ANALYZE文件,并将L-R翻转数据保存到NIfTI文件中。警告:请谨慎使用此程序,尽管您总是可以翻转它。

6.load_nii_ext。m:从NIfTI文件加载头扩展名。

7. MAT_INTO_HDR.M:将旧SPM .mat文件中的仿射矩阵集成到其.hdr头文件中。因此,分析文件将使用更新的.hdr头文件转换为nifti文件。

引用

吉米沉(2020)。NIfTI和分析图像的工具(//www.tianjin-qmedu.com/matlabcentral/fileexchange/8797-tools-for-nifti-and-analyze-image), MATLAB中央文件交换。检索

评论和评级(220

达娃

你好,
我有22个侧频作为输出。如何将其连接到CSV文件???

我遇到的问题是,默认情况下load_nii允许正交变换有10%的偏差,这是相当大的偏差。

将MM坐标与FreeView进行比较,转换中存在明确的问题,导致错误的MM坐标!

我下载了nifti zip.files将它们保存到afile然后添加到matlab中的集路径。现在如何打开工具箱?键入matlab命令窗口的内容?

千千方

如果有人认为需要读取NIfTI-2文件,或在MATLAB下的-nojvm模式下读取。nii.gz/.hdr.gz/.img.gz文件,或在GNU Octave下读取这些文件,请尝试我的新工具箱“JNIfTI”

//www.tianjin-qmedu.com/matlabcentral/fileexchange/72756-jnifti -fast-portable-nifti-1-2-reader-nii-jntivei-converter.

它使用MATLAB中的memmapfile实现快速磁盘读取。它还支持从严格的万博1manbetxNIfTI-1/2二进制格式到更灵活的基于新JNIfTI格式的文本/二进制JSON的转换,该格式在JNIfTI规范中定义https://github.com/fangq/jnifti/,使数据文件的大小更小,加载/保存更快,人类可读和可扩展。

jifti工具箱可以使用基于Java的gzip压缩,与此工具箱相同,但也可以使用ZMat工具箱(//www.tianjin-qmedu.com/matlabcentral/fileexchange/71434-zmat)用于快速压缩/解压缩。

banikr

当我使用niftiwrite时,我也面临轴变化...前后的左侧和右侧的左右切开......
这些文件解决了这个问题吗?

你好,我遇到一个问题。当我加载nii,做这个像吹:
Info = load_nii (str);
image = Info.img;
info.img =图像;
save_nii(信息,savepath);
我发现NII变化相反。如何轻松解决,保存NII与负载NII相同。

Brian2005

不幸的是,我发现这是非常糟糕的。一个简单的例子是加载图像,然后使用load_nii和save_nii函数保存它的副本。在我的机器上,这导致副本具有略微不同的Vox2RAS矩阵(并且绝对不是舍入错误)。由于此工具箱在过去的几个月里给了我很多麻烦,因此当您甚至无法确定这些诸如这些工作时,您无法确定代码是非常困难的故障排除。我的意思是这种批评只是为了建设性,并作为对他人的警告,我仍然感谢作者的努力。

我下载了nifti zip.files将它们保存到afile然后添加到matlab中的集路径。现在如何打开工具箱?键入matlab命令窗口的内容?

你好,

我下载了nifti zip.files将它们保存到afile然后添加到matlab中的集路径。现在如何打开工具箱?键入matlab命令窗口的内容?

d .李

MATLAB 2017b有niftiread(' ')函数,它工作得非常好。几天前我也在加载nii文件,只是想分享这个“新闻”,希望这可以帮助一些人:)

郝张


使用load_nii(tst.nii)加载图像后
如何从nii 1*1结构访问img矩阵?

年代

嗨。
我使用这个工具创建图像。然而,当我尝试使用C函数读取它们时,它给出了错误。当然,与其他Analyze图像一起,我的函数工作得很好。
有人遇到过这个问题吗?

Umit窑

嗨,感谢分享。它有效。我与脑MRI一起工作,需要对它们应用一些图像处理。如何将它们转换为用于实现某些图像处理/挖掘操作的文件。

mak

语tekchandani
亲爱的,你读了.nii图像并转换inro .jpg?
如果您有解决方案,请分享我。
谢谢
javaid.ciit@gmail.com.

嗨,将.nii转换为JPEG(使用Load_NII和IMWrite)JPEG图像的坐标是不匹配的。我认为需要一些翻转和旋转指令,但是我不知道的顺序。请帮忙。

嗨,将.nii转换为JPEG(使用Load_NII和IMWrite)JPEG图像的坐标是不匹配的。我认为需要一些翻转和旋转指令,但是我不知道的顺序。请帮忙。

你好吉米,
我正在使用工具箱来修改.nii映像,使用set(n = 95)masks / ROI。我需要使用特定名称更改每个单个掩码的名称。我该怎么做?

谢谢
西尔维亚

你好吉米,

我正在尝试使用您的工具箱更改我的图像的数据类型从int16到float32。我在前面的评论中看到,这是可能的,但我在转换方面遇到了一些麻烦。以下是我到目前为止所做的:

数据类型= 16;%更改数据类型为float32
nii2 = make_nii (myoldnii_file。nii,[][],数据类型);
save_nii (nii2 mynewnii_file.nii);

我得到的错误消息是:make_nii不支持数据类型。万博1manbetx

是否有可能转换nii文件这种方式或我做了一些错误的这里?

提前感谢你的帮助。
祝福!

运行时显示错误!如何阅读.NII图像将如何阅读?

董k金

你好吉米,

谢谢你的工具箱。这真的很有帮助,我想引用一下你的作品。我该如何引用你的作品?

谢谢,
Ellankavi

熊猫大

你好~
我没有得到覆盖。ziphttp://www.rotman-baycrest.on.ca/~jimmy/NIFTI/overlay.zip
能否提供一个新的地址来获取EEGnii和Ti.nii
谢谢!

你好~
我有3D和4D脑MRI NII文件。当我想加载文件并查看它们时,我会得到一些麻烦。
我的方法是:nii = load_nii ('VSD.Brain.XX.O.MR_4DPWI.124517.nii');
使用xform_nii> change_hdr时出错

接下来,我尝试使用reslice_nii。但问题是:
我的输入:reslice_nii(“VSD.Brain.XX.O.MR_4DPWI.124517。nii”、“VSD.Brain.XX.O.MR_4DPWI.124517b.nii”);
错误:索引超出矩阵维度。

如何解决这些问题?

谢谢!

叫海波

夏天

你好,
我的每人有200。HDR / .img文件对,使用SPM进行预处理。

如何从Matlab中的FMRI时间序列中提取体素时间课程?

云辉周

@Jiancong Wang这是在FAQ.pdf中的第一个“定向相关问题”中解释了工具箱。对于一些NIFTI文件,它将通过加载和保存而无法进行翻转,而不会进一步更改。但是,这种翻转不会发生在新的nifti文件中。

但是我认为在没有通知用户的情况下翻转方向并不是一个好习惯。

你好,
我发现了两个漂亮文件图像的变形的位移图的直方图。我想知道x轴的单位,我如何弄清楚x,y和z轴的方向以及我如何弄清楚正面和负面?

@Shereen,你的意思是你需要知道如何设置图像阈值吗?

这很简单。只是,对于名为NII的图像和给定的阈值Th:

nii = nii > th

并且您将获得1的图像,其中原件大于阈值,0的图像小于或等于阈值。

请帮忙
我想知道如何将。nii图像转换为二进制图像
谢谢

李家张

正如Jiancong Wang和Stefano Orsolini所说,在没有任何通知的情况下,方向从放射系统转向了神经系统。另外,也没有地方指定数据朝向。

所有其他功能都在工作,只是需要记住改变方向。

正如Jianonong Wang评论所述(2016年8月22日),方向处理有一个非常严重的问题。

放射学参考图像被无声地转化为神经学参考图像。

imu931

这个工具很糟糕。它甚至不是自我一致的。
你做了
[nii] = load_nii('some_nii')
write_nii(nii,'new_nii')

新保存的版本与旧版本有不同的轴方向!这是一个愚蠢的错误,无法使用可用的图像处理工具箱。

你好,

你知道我如何使用"rot_orient"和"flip_orient"中的信息来将bvectors重新排列为dwmri的RAS吗?例如,在我用load_nii()加载了我的DWI后,下面是:

>>
Rot_orient:[1 2 3]
flip_orient:[3 0 0]

如何使用这些字段来更改翻转/权限Bvectors(以FSL格式)还原为RAS?

谢谢!

你好,
请帮助,使用RRI_ORIET时出错:
nii = rri_orient(“a_0424_MR1_mpr-1_anon.nii”、“新”);
尝试引用非结构数组的字段。

RRI_ORIET(第26行)错误
昏暗的=双(nii.hdr.dime.dim ([2:4]));


我不知道如何使用这个工具

谢谢你这个最有用的代码!

谢谢你的工具。
在Ubuntu中运行View_nii不显示菜单(缩放,interp,...)。我试图用Ubuntu在三个不同的PC上运行它。他们都没有显示菜单。
你有解决办法吗?
非常感谢。

和辛迪的问题一样。我尝试在PMOD和freeview中打开文件,但是原点/方向,或者一些决定空间位置的参数似乎被改变了,但是我没有改变标题。

我想修改图像值而不改变空间方向的任何东西,这将是很棒的。

我该怎么办?

Alize

谢谢这些工具。他们证明是非常有用的。但是,最近我发现负载_NII模块已停止工作。我重新加载了工具集,仍然具有相同的问题。

当我输入load_nii('path/to/file')
我收到的错误是:
未定义函数'bitset'用于输入char类型参数。

xform_nii>change_hdr错误
hdr.dime。xyzt_units = char (bitset (hdr.dime.xyzt_units 2 1));

xform_nii错误(第154行)
[hdr,东方]= change_hdr (hdr、宽容、preferredForm);

load_nii中的错误(第185行)
nii = xform_nii(nii, tolerance, preferredForm);

任何调试想法?

辛迪

嗨......
谢谢你的工具箱…其实帮了我很多!
我只是找到一个小问题,所以当我将nii映像加载到此工具箱并执行一些编辑,然后保存它。
我发现图像有轻微的翻译(当我在ITK Snap中打开它)。
我不确定是否有人有同样的问题,任何人都知道我如何解决这个问题?或任何建议我如何获得正确的方向返回?谢谢。

我认为可以改善“公差”选项的可靠性的一个小问题。在XFORM中检查仿射矩阵时,首先删除矩阵的分辨率缩放将是有帮助的,如你有高度各向异性的体素(MRI常见,比如0.7x0.7x5.0),它使其变得非常困难Rational“耐受性”计算以确定矩阵取向。在该示例中,第三列中的所有元素为* 5,因此即使对于几乎直的矩阵,Col 3(n * 5)中的辅元件也将大于Col 1和2中的主要元件(n * 0.7)。这是我建议的更改(来自我的git补丁文件):
——/ niftitools / xform_nii.m
+++ b / niftitools / xform_nii.m
@@ -324,13 +324,15 @@ function [hdr, orient] = change_hdr(hdr, tolerance, preferredForm)
hdr.hist.srow_y (4)
hdr.hist.srow_z (4)];

- if det(R) == 0 | ~isequal(R(find(R)), sum(R)')
+如果det(r)== 0 ||〜Isequal(R(查找(r)),sum(r)')
hdr.hist.old_affine = [[r; [0 0 0]] [t; 1]];
- R_sort = sort(abs(R(:)));
- R(find(abs(R) < tolerance*min(R_sort(end-2:end)))) = 0;
+ resolution_matrix =诊断接头(hdr.dime.pixdim (2:4));
+ r_prime = r / stainte_matrix;
+ R_prime = R_prime。^ 2;
+ R(查找(r_prime hdr.hist.new_affine = [[r; [0 0 0]] [t; 1]];

我还在矩阵的组件中,这样所有列总和都可以检查每个元素的绝对值而不是元素<容差* min(第3大)

Matlab还想把OR运算符从“|”改为“||”。

嗨,Jimmy(以及本工具包的所有用户),

非常感谢这个伟大的工具包和所有讨论!

我有关于从ROI中提取数据的问题:

我有4维(x,y,切片,时间)的t1映射(以.nii格式)和感兴趣的文件量(以.nii格式)。我想从T1地图中提取时间活动曲线为此特定的VOI,并希望在MATLAB中绘制它。

view_nii的描述显示我们可以使用此工具箱执行此操作,但我无法弄清楚如何?

如果有人能够帮助我整理这一点,我真的很欣赏!

谢谢,
Sahil聊

这是一个很棒的工具!

我使用Freesurfer创建了海马子域遮罩,我想在我的fMRI数据上使用它来获得子域体素。但是,我如何知道子字段和fMRI数据是否在同一个空间?是否有一种方法,我可以使用view_nii,看看是否两个图像对齐正确?

谢谢你的帮助/建议。

我缺少一些东西,或者没有生成的DICOM到NIFI转换功能...... ???
例如:
nii = D2N(“SRC_folder”、“full_path \ output_name”)

似乎有很多在那里,但每个都使用不同的格式来加载到matlab中。因此,如果我使用不同的DICOM2NIFTI转换器,而不是这些文件,这里无法正确加载它们。我看到了一个make_nii(),但实际上并没有从DICOM转换......或者我错过了什么?

谢谢你的时间。

你好,
请问是否可以知道NIFTI图像的像素值?因为我没有找到任何函数可以这样做。我想知道nii图像的一个特定像素的值。
谢谢你!

KB.

我正在尝试保存二进制3D nifti面具,但是当我尝试保存它时,我将变量nii.hdr.dime.bitpix和nii.hdr.dime.datatype更改为1.我可以保存这个nii但没有外部MATLAB以外的程序能够阅读它。我尝试用imagej和Itk-snap打开它,但没有一个能够读取它。

谢谢你写这个漂亮的功能。我正在尝试在模板MR图像的顶部绘制一系列ROI(每个颜色),反映一个反射p值的颜色)。我得到了基础的工作,但我似乎无法翻转ColorMap,以便较低的p值与更红颜色(使用默认双极Colormap)相关。通常我会在颜色矩阵上使用flipud函数,但我似乎无法下工作。任何建议都将非常感谢。非常感谢。

Ioannis.

Ioannis.

你好。

我已经使用dicm2nii将四个DICOM系列转换为3D Nifti卷。接下来我需要做的是将四个3D Nifti卷连接到一个3D Nifti卷,为此我尝试了使用collapse_nii_scan。我得到的结果是一个4D Nifti文件('multi_scan.nii')有四个“时间点”,而不是一个包含最初DICOM系列的所有图像的单一3D卷。任何关于这方面的想法都将非常感谢!

问候,
Ioannis.

我是这个工具箱(和matlab)的全新,我试图加载.nii文件。我输入了命令窗口以下内容:
>> TOPFACE = LOAD_NII('/ USER / MRIUSER / FMRI / Homunculus2 / P121 /实验.Feat / Stats / Zstat1.nii')

然后,命令行立即转换为:

> > uiopen(' /用户/ MRIuser / fMRI / Homunculus2 / P121 / Experiment.feat /统计/ zstat1.nii ', 1)

另外,在我的编辑器窗口中打开了一个标签为zstat1的标签。Nii有许多随机角色。但是,并没有创建名为“topface”的变量。有什么建议吗?

当我将DICOM图像转换为Nifti格式时,每次运行/会话都有多个.nii文件。每个图像也有不同的尺寸。有人知道为什么会这样吗?哪个图像是正确的继续分析?

你好吉米,

我有一个关于方向的问题。我看到FSL有一个函数(fslhd)读取头并返回"qform_xorient" ("Left-to-Right"或"Right-to-Left"),但load_untouch_header_only没有。“qform_xorient”在头文件中还是从其他参数解释?

谢谢!

你好,
所以我检查了你的工具,在查看。niu .gz文件从matlab非常有帮助,但我如何使用它来保存我的文件作为一个。mat文件与相同的大小(256*256*50)。

谢谢,
Mayada

janki mehta

你好,

谢谢你的工具箱。我有以下问题:
我在matlab中有一个3d矩阵,我需要转换为nifti或分析格式,以便在spm8中查看它。为此,我正在使用“nifti和分析图像的工具”。我的问题是使用make_ana命令将此3D矩阵转换为分析格式,我得到了旋转/翻转的大脑卷。
我该如何解决这个问题?
注意:将这一结果与原始脑容量共同记录并没有帮助,结果仍然是翻转的。

谢谢,

Janki

非常感谢您非常有帮助的代码!

我遇到了加载我的一些文件的问题。
我在FSL中准备了一个掩码文件,并希望将其加载到MATLAB中,以及一些功能文件。
问题是仿射矩阵对我的两个主题有非正交旋转,所以我不能使用“load_nii”。
我不确定我是否可以使用“reslice_nii”,因为我仍然需要这个遮罩文件有相同的尺寸作为我的功能文件。
任何想法都将非常感谢!
谢谢,
梅尤塔尔

KB.

令人难以置信的有用和写得很好的工具箱。什么服务!

非常感谢!!!

纳拉

我在加载和查看。nii文件时遇到了您的MATLAB代码。我目前正在研究自闭症患者的大脑地图和大脑成像。我从ABIDE数据库中得到了病人的核磁共振成像。但我对MATLAB真的很陌生。我不明白这段代码是如何工作的。它说用文件名替换文件名,我也这么做了。但我想它还需要一些修改,这样我就可以使用它了。你能告诉我如何使用这个代码吗?

易隋

伟大的工作!
我更新了一点点并添加了一些新功能。
请检查
//www.tianjin-qmedu.com/matlabcentral/fileexchange/47072-3d-nifti-data-viewer

基督徒

基督徒

非常感谢这个有用的工具!

嗨sangeetha,

关于LAPACK加载错误:(dlopen:不能加载任何静态TLS对象)

这是在linux系统与matlab版本R2012b和更高的已知问题,并不是特别与这个工具箱相关:

http://www.mathworks.de/万博1manbetxsupport/bugreports/961964

似乎有一个新的解决方法,但之前的建议是将以下行添加到startup.m:

(10) *兰德(10);

这确保了在启动时加载了相关库,这对我们的系统进行了诀窍。

保罗

嗨,谢谢你的这个有用的工作。当我尝试加载NII文件时,我会收到我在下面复制的错误。什么可能是问题?

错误使用相同
Lapack加载错误:
dlopen:无法加载更多对象
用静态tls.

在xform_nii>change_hdr错误
327)
if det(R) == 0 |
〜Isequal(R(查找(r)),sum(r)')

xform_nii错误(第154行)
[hdr,东方]= change_hdr (hdr、宽容、preferredForm);

load_nii中的错误(第185行)
NII = XForm_NII(NII,公差,
首选形式);

Xen.

嗨,恭喜你出色的工作。
如果之前有人问过类似的问题,我道歉。我有16个tif格式的灰度切片,想把它们转换成nii格式。我该怎么做呢?谢谢。

吉米沉

你做不到。当你需要load_untouch_nii或load_nii时,请检查faq.pdf

Israna

如何查看由“load_untouch_nii.mm”加载的图像?

吉米沉

因为它不是View_nii的业务来解释和应用标题信息。

Israna

谢谢代码的帮助。

但是你能帮我理解为什么我不能使用“view_nii”吗?来查看由load_untouch_nii.m加载的结构?我该怎么看呢?

谢谢

抱歉,我找到了,谢谢你的神奇功能

伟大的功能
谢谢你的更新

吉米沉

尼古拉斯,请告诉我困惑你的确切“线索”或“信息”是什么。此外,请告诉我你尝试做什么。

尼古拉斯yu.

View_nii不太作用。
您给出的示例非常好,但是对于我的大数据,它提供了使用load_nii的线索。当我使用load_untouch_nii时。M,但使用load_untouch_nii。当我使用load_nii.m时。为什么?

吉米沉

你可以使用“load_untouch_nii / save_untouch_nii”对。这是一个例子:

nii = load_untouch_nii('avg152t1_lr_nifti.nii');
nii.hdr.hist.descrip ='mengye';
save_untouch_nii(nii,'new_avg152t1_lr_nifti.nii');

除非你自己触摸Nii.img,否则,例如,nii.img(1)= 0,它不会更改,虽然它也加载并保存。只有标题(nii.hdr)在您做出更改的方式编辑。

此外,如果输入文件处于分析7.5格式,则输出将保存在分析7.5格式中。如果输入处于NIFI格式,则输出将保持在NIFTI格式中。

这就是为什么我有“load_untouch_”和“load_”功能。然而,在大多数情况下,你想使用“load_”特性,因为你不想解释在头部的仿射矩阵,并使所有的翻转和旋转自己,对吗?

yoryu ..

嗨,吉米

是否有方法可以加载,编辑和保存.hdr而不向.img做事?因为我发现SPM每次进行共同注册时都更改了我的源文件头,我想把它更改回来。它似乎save_nii_hdr()是一个内部函数,我尝试使用它但违反了我的nifti文件。

谢谢,
Mengye

NH

perfect!谢谢!

吉米沉

“绘图”的数据仅包含坐标信息,而“make_nii”的数据需要强度值,该数据被假定在网格上分布到从1到栅格的统一分布到网格的尺寸。另外,与绘图不同,图像的坐标仅包含整数。因此,您无法直接从绘图中提取数据并使其成为图像。

将您的绘图数据导出到图像将是一个简单的替代方案。我想你已经做得很好。您所要做的就是隐藏背景图像和轴之前将绘图导出到图像之前。这是怎么做的:

1.在导出之前,使用鼠标点击您的情节(使其活跃);

2.通过跑步隐藏斧头:

集(gca,“可见”,“关闭”);

3.隐藏背景图像通过运行:

h = get(gca,'child');
i = 1:长度(h)
如果strcmpi(get(h(i),'type'),'image')
集(h (i),“可见”,“关闭”);
结束
结束

4.将绘图导出到图像。现在它没有背景和轴。

NH

非常感谢这个有用的产品。如果有人能帮助我......我确实有一个问题......

我加载了一个.nii文件,做了一些处理并有一个我想从并最终另存为.nii的新图。这是一个简单的曲线,是找到对象的边界的结果。我从绘图中提取了数据,然后将其输入到单元格中,但“make_nii”函数不支持此数据类型。万博1manbetx我尝试将小区转换为.mat,但也没有产生满意的结果。我还尝试将绘图保存为图像,然后使用它的“make_nii”,但结果包括图像的边框和轴。我只想要数据,没有背景或轴。有没有人有任何建议?

Orestis

吉米沉

“collepast_nii_scan”用于将多卷NIFTi或分析文件集成到一个多卷NIFTI文件中。在您的情况下,如果要将两个4D NIFTI图像连接到一个4D NIFTI图像,则应将“Expand_nii_scan”应用于两个4D图像。所有卷都必须在同一文件夹中,并确保文件名被正确重命名(即001〜999而不是1〜999)。然后,将“collept_nii_scan”应用于特定文件夹中的所有扩展卷,并且您将获得一个连接的4d nifti映像文件。

Rodolphe.

你好,我尝试用collapse_nii_scan连接两个4D nifti图像,但这给了我一个图像只有2卷。我是不是遗漏了什么?

吉米沉

嗨zhi:

“collasse_nii_scan.m”将完成这项工作。

嗨Samiy:

这个工具不能用来提取脊髓。然而,一旦提取并保存到另一个Analyze/NIfTI文件中,该工具可以将数据加载到MATLAB中进行进一步处理。

在FSL中,有一个叫做avwmerge的工具,它将几个hdr或nii文件绑定到一个hdr或nii文件中。一些现有的应用程序只使用单个hdr/nii文件作为输入。我可以在你的工具箱里找到类似的功能吗?多谢。

吉米沉

接收到的图像,是一种特殊的RGB数据类型之一。nii。Img的范围通常是0到1,但是输出值需要按(glmax-glmin)+glmin进行缩放。

请问我发给我这个图像,所以明天下午我可以为你看看它。

你好,
这个套餐适用于我的研究。谢谢。但现在我有矢量图像的问题。我想通过采用绝对值来更改XYZ矢量图像的像素值。我第一次使用:nii = load_nii(1_xyz.img),如果我使用View_nii(Nii),我发现了所有内容。将十字线移动到139,63,91,我可以读取值(-0.1784,0.8963,0.3663),这是正确的。但如果我使用了:a = nii.img;a(139,63,91,1:3),它将显示值为0.35555,0.9434,0.6535。似乎a的价值总是积极的。我试图使用nii = load_untouch_nii(1_xyz.img); a = nii.img; It has the same positive value.
你对nii值之间的不一致有什么建议吗?Img和显示的view_nii(nii)?
非常感谢。

你好,

这个套餐适用于我的研究。谢谢。但现在我有矢量图像的问题。我想通过采用绝对值来更改XYZ矢量图像的像素值。我第一次使用:nii = load_nii(1_xyz.img),如果我使用View_nii(Nii),我发现了所有内容。将十字线移动到139,63,91,我可以读取值(-0.1784,0.8963,0.3663),这是正确的。但如果我使用了:a = nii.img;a(139,63,91,1:3),它将显示值为0.35555,0.9434,0.6535。似乎a的价值总是积极的。我试图使用nii = load_untouch_nii(1_xyz.img); a = nii.img; It has the same positive value.

你对nii值之间的不一致有什么建议吗?Img和显示的view_nii(nii)?

非常感谢。

马克

谢谢,这正是我想知道的!

吉米沉

确定标志。顺便说一下,你需要一个参考图像,这样你就可以看到在应用变换矩阵之前和之后会发生什么。这是例子:

1.下载“avg152T1_RL_nifti。nii”来自NIfTI网站。我用它作为参考图像。

2.查看参考图像的样子:nii = load_nii('avg152t1_rl_nifti.nii');
view_nii (nii);

3.假设我有一个变换矩阵,它会让参考图像在XY平面上逆时针旋转30度,矩阵如下:罪(π/ 6)因为(π/ 6)0;0 0 1);

4.Get old_xyz from reference image: rl=load_untouch_nii('avg152T1_RL_nifti.nii');
old_xyz = [rl.hdr.hist.srow_x(1:3); rl.hdr.hist.srow_y(1:3); rl.hdr.hist.srow_z(1:3)];

5.应用你的变换矩阵,并保存new_xyz到一个新的图像:rl.hdr.hist.srow_x (1:3) = new_xyz (1:);rl.hdr.hist.srow_y (1:3) = new_xyz (2:);rl.hdr.hist.srow_z (1:3) = new_xyz (3:);save_untouch_nii (rl rl30.nii);现在你已经有了rl30。这是一个转换后的NIfTI图像,可以在任何地方使用。

6.要使用我的工具箱查看此图像,您需要重新删除它:Reslice_nii('rl30.nii','rl30b.nii');现在,您可以加载和查看旋转图像:RL30B = Load_NII('rl30b.nii');view_nii(rl30b);

希望这是答案你的问题。

马克

你好,

是否可以使用reslice_nii对nifti卷应用转换?例如,如果我有一个变换矩阵,它是一个函数体与一个解剖体的三维共配的结果,我可以使用reslice_nii将这个变换矩阵应用到函数体上,将它转换到解剖空间吗?如果是的话,有没有可能提供一些示例代码?

非常感谢有用的代码。

吉米沉

要回复您的第一个注释:问题是您将“make_nii”与“_untouch_”版本混合。如果使用“make_nii”获取NIFI结构,则必须使用“save_nii”来保存。

回复您的第二条评论:如果您很了解NIfTI结构,当然可以修改它,然后使用“save_nii”保存它。你甚至可以使用save_nii将“非正交”NIfTI结构保存到文件中。

我用“load_nii”解释头部并将其限制为“正交”转换的原因是为了方便,至少对我的工作来说是这样。

顺便说一下,如果你把原始的NIfTI文件,并把它带到其他软件显示(例如SPM),他们也会为你reslice它。

非常感谢您的评价!

我想我弄明白了。

我读了你的更新,意识到untouch选项不加载变换矩阵,所以通过添加一个,我改变了标题。

我通过克隆头文件并使用save_nii()来解析

如果您想知道为什么我没有使用load_nii(),它是b / c,y数据具有非正交变换,打开的工具无法正常工作。

顺便说一下,我认为这种行为可能是不合理的。reslice的建议在我的实验室被认为是一个坏主意,b/c插值人工制品。

你好吉米,

我使用save_untouch_nii()有一个问题。

我加载了使用load_untouch_nii()设置的NIFTI 4D数据集,没有更改,然后尝试使用save_untouch_nii()保存并使用消息获取失败:使用:请为修改后的结构使用“save_nii.m”。

我甚至尝试在保存之前克隆hdr。

nii = load_untouch_nii(“foo.nii”);
data = nii.img;
%data = data + 10;
nii_mod = make_nii(数据);
% nii_mod。hdr = nii.hdr;
save_untouch_nii (nii_mod test1.nii);

吉米沉

得到你的数据,并使用“analyze75read”“load_untouch_nii”和“load_nii”进行以下测试,结果如下:

a1 = analyze75read(“dxx.img”);
马克斯(a1(:)),得到3.3943 e-08

A2 = load_untouch_nii('dxx.img');
max(a2.img(:)),获得3.3943e-08

a1 = load_nii('dxx.img');
max(a1.img(:)),获得3.3943e + 04

检查:a2.hdr.dime.roi_scale
获得1.0000E + 12

您告诉我,使用“Analyze75Read”,您可以获得1.089e + 12的体素值。我无法复制你的结果。

迈克尔

嗨,吉米。我想我理解你的工具,我确实使用“load_nii”。我正在向您发送数据。

吉米沉

没有更多细节,我无法复制您的问题。请将您的数据发送给我。另一方面,我希望你可以看看我的网页以更好地了解这个工具。要显示,必须使用“load_nii”而不是“load_untouch_nii”。即,您的数据被正确解释(触摸)。可能有很多情况,例如,比例因子在标题文件中指定,您的数据具有不同的方向等,但是,在没有任何情况下,它不同地处理双重数据类型。

迈克尔

我的第一篇文章没有提交。我说程序无法显示使用Double DataType的分析文件的正确值。matlab分析75 read工作没有问题。
你知道为什么这是什么?

迈克尔

PS:例如,这个程序将显示988.1,而不是正确的体素值1.089e+12

吉米沉

我从未有这样的函数,称为“read_nii_img”。请阅读所有功能和用法:

http://www.rotman-baycrest.on.ca/~jimmy/NIfTI

我最近发现了,现在我们已经升级到Matlab 2011A,其中许多功能不再正常工作。使用read_nii_img时,我们现在遇到错误说:

???未定义用于输入char类型参数的函数或方法'read_nii_img'

我们以前成功地运行了这些程序,但自从更新后,它们就不能工作了。你对解决这个问题有什么建议吗?谢谢!

吉米沉

似乎已修改“Apply_fsl_transformation_matrix”中的“load_nii_hdr”。它应该看起来像这个“函数[HDR,FILETYPE,FILEPREFIX,Machine] = load_nii_hdr(fileprefix)”。即它应该有4个输出参数,这与“Load_untouch_nii”的要求完全相同。

迈克尔

你好,

在'load_untouch_nii'中使用'load_nii_hdr'得到以下错误消息:

???使用==> load_nii_hdr错误
输出参数太多。

错误==> load_untouch_nii 103
[nii.hdr,nii.filetype,nii.fileprefix,nii.machine] = load_nii_hdr(filename);

错误在==> apply_fsl_transformation_matrix在5
vox = load_untouch_nii (' / SCR2 DTI / det_track / BM3K /反式/ Sem_fun_roi.nii ');

谢谢你的帮助!

迈克尔

吉米沉

nifti支万博1manbetx持“.nii”和“.img / .hdr”文件扩展名。如果您没有提供任何文件扩展名,则默认情况下会查找“.mg / .hdr”文件。因此,您可以通过提供适当的文件扩展程序轻松解决您的问题。例如nii = load_nii('filtered_func_data.nii');

Galit

你好,
试图加载.nii文件,我收到了一条消息:
找不到文件“filtered_func_data.hdr”
问题显然位于我们没有单独的头文件的事实中。是否有解决方案除了将其转换为.hdr和.img?
谢谢!

大卫德

吉米沉

I assume that you have a series of 3D NIfTI (or Analyze) files with the same header information (i.e. same dimension, voxel size, originator, ... etc.), and you want to integrate it into a single 4D file with time series in the file.

如果是这种情况,您可以使用“collepse_nii_scan.m”来执行此操作。类型帮助collept_nii_scan获取更多信息。

对于文件扩展名,这个函数将遵循您所拥有的。也就是说,你仍然会得到一个。hdr/。img文件之后。

由于所有NIFI兼容软件都应该能够加载4D NIFTI(或分析)文件,因此我们不支持从.hdr / img到.nii文件的任何转换。万博1manbetx

Lirong谭

你好,

我想将一系列.hdr / .img文件转换为一个.nii文件。我怎样才能实现这一目标?非常感谢。

吉米沉

你不应该使用load_nii_hdr。m”&“load_nii_img.m”。这两个函数都是内部函数,直接调用它们时不受支持。万博1manbetx

如果你想查看头部信息,请使用“load_untouch_header_only.m”。

如果你想改变体素值,请使用load_nii。来加载NIfTI文件,然后使用"view_nii. m"在“编辑”选项卡下编辑体素值,然后点击“文件”选项卡下的“保存显示图像”。

您的案例中不一致的原因是由您自己未正确解释的标题中的缩放因子引起的。

Priya.


我正在使用NIFI和Analyze Image的工具。非常有用,衷心感谢分享您对研究界的工作。

我正在使用.hdr和.img格式的图像。我正在尝试将像素值1更改为5,然后将其保存为免疫。我使用函数View_nii查看了保存的图像。我可以找到像素的像素值,我做了5个。但是如果我在像Micricron和FSLView这样的观众中打开这些图像,则它将像素值显示为0.01961。我找不到原因。你能帮我找解决上述问题的解决方案吗?我可以看到输出图像的Gmax为5.但是对于输入图像,它为0。
我已经把我使用的代码行。

我想发送我的输入文件,所以知道我的问题会更好。请告诉我一种发送我的输入文件的方法。

[nii1.hdr, nii1.filetype nii1.fileprefix nii1。机]= load_nii_hdr(“1 sub_110_a - 128 _5med”);
[nii1.img, nii1。hdr) = load_nii_img (nii1.hdr、nii1.filetype nii1.fileprefix, nii1.machine);
z =找到(nii1.img);%的数量指数——4610
img1 = 0(大小(nii1.img));
img1 = uint8 (img1);
img1 (z) = 5.00000;
nii1.img = img1;
save_nii (nii1 out1.img);

提前感谢你的帮助

吉米沉

这是因为这些参数和缩放已经被解释并应用于图像。这是nifti装载者应该做的。

如果您想自行解释标题,请随时尝试以下命令:

x = load_untouch_nii(“b0.hdr”);
save_untouch_nii(x,'b0xx.nii');

有关详细信息,请仔细阅读所有说明,可以在我的网页上找到:

http://www.rotman-baycrest.on.ca/~jimmy/NIfTI

我尝试使用包中的两个函数将HDR图像转换为nifti图像
x = load_nii(“b0.hdr”);
save_nii(x,'b0xx.nii');

然后比较了变换前后的Q偏移量、仿射参数和标定比例。然而,它们几乎完全不同。是否有可能在不影响这些参数的情况下进行转换?

吉米沉

首先,当你使用'save_nii。m',您保存的文件将始终是NIfTI格式而不是Analyze格式。

其次,使用'load_untouch_nii'加载原始分析文件和保存的nifti文件,并检查“.img”字段的维度大小和数据类型。

最后,我测试了使用'load_nii。加载许多Analyze和NIfTI文件,然后使用'save_nii. m'。m'保存到NIfTI文件。我没有发现数据大小“显著增加”。如果可以的话,请将您的原始Analyze数据上传到我可以访问的地方,并将链接发邮件给我(不要使用邮件附件),以便我尝试复制您的问题。

顺便说一下,直到8月2日之前我将无法使用。

杨刘

亲爱的大家:

在使用这个工具箱的过程中,我发现了以下问题。
我可以通过'load_nii.m'获取analyze格式文件中的数据。
但是,当我将数据保存以分析格式文件时,在没有任何变化的情况下使用“Save_NII.M”进行格式文件,则数据大小重注。

泰勒

我下载了新程序,所以我现在得到了一个不同的错误,表明您刚才提到的内容。

然而,reslicing不是一个选项,因为我们首先使用SPM来注册图像,所以我们需要NIFTIs在它们所在的当前空间(我将努力将图像提供给您,但我不知道目前是否有这种可能性)。

吉米沉

首先,“load_nii”和“load_untouch_nii”都支持SPM NIfTI万博1manbetx图像。事实上,只有一个NIfTI标准,所有NIfTI兼容的软件都应该符合这个标准。

其次,为了复制错误,请将该图像上传到我可以读取的任何地方。请不要通过电子邮件附件发送。

正如您已经注意到的,NIfTI图像可以在任何空间方向,而“load_nii”只能有48个正交方向。在这种情况下,程序将提示您使用“reslice_nii”来插值图像。由于您没有得到适当的提示,我有兴趣看看您正在加载的图像。

详情请浏览我的NIfTI网页:

http://www.rotman-baycrest.on.ca/~jimmy/NIfTI

泰勒

编辑:错误在这里

load_nii (pathTo.imgFile)
** ???使用==> XForm_NII> 236时出错
控件不支持此NIFTI数据的转换万博1manbetx
项目* *。

错误在==> xform_nii在90
[hdr orient] = change_hdr(hdr);

错误在==> load_nii在71
nii = xform_nii (nii);

泰勒

沈先生,

总的来说,我在这一揽子计划上取得了良好的成功;然而,在处理SPM时,NIFTIs (http://www.fil.ion.ucl.ac.uk/spm/我无法加载与load_nii。

然而,我必须使用load_untouch_nii,但是,当我使用它时,niftis处于随机空间方向,需要翻转和/或旋转的图像矩阵以正确的方向。

你知道有什么办法解决吗?它大大减慢了我的研究:/

谢谢!

泰勒

是的,现在你提到有时旧的分析格式被读取为[0 0 0],这就更有意义了。我想这可能就是我的情况。

你读过:
http://nifti.nimh.nih.gov/nifti-1/documentation/nifti1fields正如我所提到的?

如你所见,NIfTI中的origin用sform或qform表示。当你使用“load_nii”时,你应该在以下目录下找到它:

有时候,对于旧的ANALYZE映像,值是[0 0 0]是没有意义的,那么你别无选择,只能使用:hdr.dime.dim(2:4)/2。

希望这个有帮助。

谢谢你的回复!

起始位置,我指的是原点(x,y,z)。在MATLAB的头部结构中,我找不到图像数据的来源。

x y z的起始位置都是1。例如XYZvoxal=[1 1 1]就是开始的地方。

请查看nifti标题字段:
http://nifti.nimh.nih.gov/nifti-1/documentation/nifti1fields

让我知道我是否正确理解你的问题。

你好吉米,

我无法在标题结构中找到像素或z方向上的像素或体素的开始位置。我使用load_nii读取我的分析图像。图像很好。我只是找不到开始位置。

谢谢,
诺维

吉米沉

这是一个例子:
nii = load_nii (mydata.img, vol_id);
片= nii.img (:,:, slice_id);
片=圆(63 * (slice-min(切片(:)))/ max(切片(:)))+ 1;
imwrite(片、飞机、“myslice.jpg”);

沃堡顿

嗨,吉米。真的这是一个非常好的代码。

我有一个问题。如何做出一部分4D NIFTI大脑卷的单个片,并将其保存到常规图像文件(即:JPEG,BMP ...)中,使用常见的颜色图(即:GE_COLOR)??

谢谢你的注意力。

W.

吉米沉

您可能没有注意到“load_nii”中的公差参数。默认情况下,我们不允许超过10%的失真。你可以将它设置为0,你会被提示使用“reslice_nii”来插值图像。

如果您只是想将负值和NAN值更改为0,您可以简单地使用“load_untouch_nii”和“save_untouch_nii”对来完成这项工作。

你好吉米,

我有一些问题。我的目标是改变负值和图像中的NAN值为0,然后保存为。nii。我使用load_nii程序,然后将值改为0,然后使用save_nii。一切似乎都很好。但是我最终发现图像的FOV有一点变化:视场-宽度:204;视场高度:256;切片厚度:1到视场宽度:203.992;视场高度:255.909;层厚:0.99968。但图像尺寸保持不变。你明白我的意思吗? I mean the voxel size changed. Could you please have a look at this problem? It is very strange.

非常感谢。
小宁

小宁唐

你好吉米,

我有一些问题。我的目标是改变负值和图像中的NAN值为0,然后保存为。nii。我使用load_nii程序,然后将值改为0,然后使用save_nii。一切似乎都很好。但是我最终发现图像的FOV有一点变化:视场-宽度:204;视场高度:256;切片厚度:1到视场宽度:203.992;视场高度:255.909;层厚:0.99968。但图像尺寸保持不变。你明白我的意思吗? I mean the voxel size changed. Could you please have a look at this problem? It is very strange.

非常感谢。
小宁

小宁唐

吉米,

我解决了这个问题。非常感谢。

最好,
小宁

吉米沉

首先,您不必使用“make_nii”,该“make_nii”仅基于N-D矩阵为您创建NIFTI STRUCT。

第二,make_nii支持浮点数数万博1manbetx据。输入help make_nii获取更多细节。你收到错误信息了吗?

小宁唐

你好吉米,

非常感谢你的剧本。它们真的很有用。

现在我想读取一些nii文件,并设置像素值低于零。我首先加载nii文件,然后更改值。现在我需要把它保存回nii文件。我想我应该先make_nii,然后save_nii。但是make_nii似乎不支持浮点数据类型。万博1manbetx你有什么好的建议吗?

最好,
小宁

吉米沉

胡安:你好

您可以查看以下内容的“关于叠加的问题”类别:
http://www.rotman-baycrest.on.ca/~jimmy/NIfTI/FAQ.htm
本主题有几个问题和答案。

你说你有每个体素的x,y和z方向。x,y和z方向必须转换为关于第一个体素的索引。也许,你已经有了代表特征图像的大脑区域。让我们假设你有一个叫做brain_mask的二值图像。而解剖图像则被称为ana.nii。你可以试试以下方法:

1.使用“ana = load_nii(ana.nii)”来加载解剖图像,并确保变量“ana.nii”。Img "要么是"单"要么是"双"。如果没有,请使用步骤2转换它。

2.要将变量“Ana.img”转换为“单个”,您需要使用“make_nii”命令:“ana = make_nii(single(ana.img),ana.hdr.dime.pixdim(2:4),ANA.hdr.hist.originator(1:3))“。

3.使用"mask = load_nii(brain_mask.nii)"来加载大脑
屏蔽图像,将值和索引分配给“opt”结构:“opt.setvalue.idx = find(mask.img); opt.setvalue.val =特征向量;”。你可以通过命令"help view_nii"来查看使用"setvalue"的更多细节。

4.将其他值添加到“opt”结构:“opt.command ='init'; opt.useinterp = 0;”。

5.通过命令“view_nii(ana, opt);”绘制带有背景的特征图像。

6.不要单击“Interp On / Off”菜单。它无法正常工作。如果您希望看到插值的一个,请使用:“OPT.USEINTENTP = 1; View_nii(ANA,OPT);”相反。

如果你还有疑问,请随时问我。

吉米

胡安

嗨,吉米。
非常感谢这个非常有用的工具箱。
我的问题是关于如何叠加在图像中。我需要覆盖图像上每个体素的主要特征向量;我已经在Matlab阵列中拥有每个体素的x,y和z方向,但我想知道如何在相同的图像上显示,或者它可以修改代码以保持主要图像并摆脱所有您提供的选项,如十字线的颜色和位置等。因为我主要需要显示图像并在其上显示特征向量。
谢谢,
胡安

嗨preeti:

1)没错,它不支持。avw格式。万博1manbetx所以请保存在。hdr/中。img或。nii格式,然后在MATLAB中打开它们。

2)在很多新电脑上300个切片就可以了。如果您的计算机不能在内存中保存这么多的数据,您可能需要一次取1片或几片来分析。该特性于2010年1月6日实现。

我正在使用AnalyzeDirect软件进行肺癌检测和检索。我从300多张胸部CT扫描切片(DICOM)中对肺部进行了分割。我以.avw格式以及Analyze7.5格式保存了结果。现在,当我试图在MATLAB中打开这些文件时,我遇到了这些问题

1)代码只支持hdr/。img'格式,即Analyze7.5格式。我无法加载。avw文件
2)没有。当我打开'.hdr/时,它给出'Out of Memory'错误。img的数据。

如何解决这两个问题。请帮忙!

吉米沉

嗨Anne-Lene:

别担心。下面的建议会给你更多的帮助。

如果您在使用“expend_nii_scan”后没有看到差异,这意味着您的文件中只有一个扫描(一个卷)。自从你说“…look at the nifti images separatley…”,我认为你有几个图像(卷或扫描)在一个文件,并想要分别对待他们。

您需要做的第一步是通过“load_nii”命令将图像加载到matlab中(请在使用之前查看“帮助Load_nii”)。

假设你有一个图像“file1”。nii”(或“file1.img / hdr”)。命令:
nii = load_nii('file1.nii');
或者
nii = load_nii(“file1.img”);
你可以在“nii”中得到一个3D矩阵。Img "和它的头部信息在"nii.hdr"。

您提到您希望将图像更改为另一个数据类型。以下是:

您可以直接更改标题信息(如果您熟悉NIFI标题),则使用“save_nii”,或使用“make_nii”创建新的nifti结构(如nii)。

例如:
数据类型= 16;%更改数据类型为float32
nii2 = make_nii(nii.img,nii.hdr.dime.pixdim(2:4),nii.hdr.hist.originator(1:3),数据类型);
save_nii(nii2,'file2.nii');%要使用nii ext
save_nii(nii2,'file2.img');%或使用IMG / HDR ext
通过这样做,您将其更改为Float32数据类型,并将其保存到“file2”中。nii”(或“file2.img / hdr”)。

如果你有一个你自己做的MATLAB算法,如你提到的,我认为你会对img矩阵("nii.img")更感兴趣。“nii。是头信息描述如何“nii. Hdr”。Img”是定向的,体素大小是什么,发起者是什么,等等。

最后,我必须纠正你,“make_nii”将不会转换图像到任何扩展。它仅从N-D矩阵和其他一些参数(体素大小、发起者、数据类型等)生成NIfTI结构。请再次检查帮助,并确保你知道如何使用它。

如果你有进一步的问题,请说得更具体一些(例如列一个要点清单),这样我就知道如何帮助你了。

吉米

Anne-Lene

我看了那些链接,并尝试了expand_nii_scan,恐怕我还是不明白。我的文件有nii扩展名,当我使用扩展时,我得到另一个nii文件,我没有看到它和我的原始文件之间的区别,当我使用view_nii。

我看到使用make_nii我可以转换图片与img/hdr扩展,但我不能让它工作在我的文件与nii扩展。

Anne-Lene

吉米沉

嗨Anne-Lene:

没有问题是愚蠢的。

是的。您可以使用我的工具单独查看NIFI图像,并将它们转换为另一个数据类型。

因为NIfTI同时支持i万博1manbetxmg/hdr和nii扩展,所以我的工具支持它们中的任何一个。

大多数帮助可以通过help命令获取。例如帮助make_nii。

有几个其他资源可以获得帮助:
http://www.rotman-baycrest.on.ca/~jimmy/NIfTI
http://www.rotman-baycrest.on.ca/~jimmy/NIfTI/FAQ.htm
http://www.rotman-baycrest.on.ca/~jimmy/NIfTI/examples.txt

命令“expand_nii_scan”用于将多扫描NIFTI文件分解为多个单扫描NIFI文件,因此您可以单独查看它们。

如果要转换img数据类型,可以在使用“make_nii”命令后使用“save_nii”命令。如果你熟悉NIfTI结构,你可以修改“hdr”。然后使用“save_nii”保存。

如果您有进一步的问题,请使其更具体,所以我可以帮助您。

吉米

Anne-Lene

这就跟你问声好!

我是使用nifti的初学者,所以这可能看起来像一个愚蠢的问题,但我希望你能帮助我。

我使用FSL PRELUDE来解开我的MRI图像,现在他们现在处于NIFI格式。我现在需要将这些与图像进行比较,即我用我自己创造的matlab algoritm揭开的图像。

我可以使用工具查看NIFTI图像Separatley,也许将它们转换为我可以在Matlab中使用的另一个数据类型?

我认为也许你在帮助save_nii的提示可以帮助我,但我不知道如何使用它,我需要img/hdr文件代替nii吗?

如果你能给我一些指导,我会非常感激的。

Anne-Lene

吉米沉

嗨大卫:

我刚刚有机会调查这个问题。

由于它太复杂地修改了“Load_Nii.m”来加载特定的NIFI和分析格式的切片,因此仅修改“Load_untouch_nii.m”。这意味着,您将根据其标题信息处理图像方向,因为“load_untouch_nii.m”不适用于HDR中指示的IMG矩阵的任何更改。

我希望这仍然可以以某种方式帮助您加载大型数据集。

吉米

大卫

这是一个非常棒和非常有用的软件。

我只是想知道是否有没有从分析和NIFI格式加载一个或多个特定片段的?我知道在负载后从NII.IMG选择所需的切片很简单,但我想避免使用完整的4D,5D,TSC负载的内存使用情况。

感谢您分享这项工作Jimmy

吉米沉

你好迈克尔:

首先,我想知道如何简单地将.img文件重命名为.nii文件。NIfTI支万博1manbetx持这两个扩展名,但是对于.img扩展名,您需要将头文件单独保存在.hdr文件中。所以人们不可能只是“……将.img文件重命名为.nii文件…”

其次,我研究了Francesca的数据,并且图像数据的大小与标题中指示的大小不匹配。对于这样的文件,我无法映像任何软件都可以处理它。

我很高兴看看你的样本。请您将它们上传到您的服务器上,并在此发布链接?

谢谢,
吉米

嗨,弗朗西斯卡,吉米,

有趣的是,我在使用核磁共振成像时遇到了同样的问题。我找到了一个变通办法。如果使用MRIcro,您将roi保存为一个单独的分析标题(而不是嵌入式标题),然后它将与MRIcro打开。然而,这仍然不会打开吉米的工具。但是,如果您将.img文件重命名为.nii,那么两个Jimmy的工具都将加载它。

吉米,如果你想的话,我很乐意给你发一些有限的样本图片。

迈克尔

吉米沉

小薇:你好

谢谢你的速度。

当您使用“load_untouch_nii.m”时,它只需加载IMG和HDR,但不会应用标题中指示的任何更改(例如SCL_SLOPE,仿射矩阵等)。因此,我始终建议人们在大多数情况下使用“load_nii.m”。请检查“load_untouch_nii.m”的描述&“load_nii.m”http://www.rotman-baycrest.on.ca/~jimmy/NIfTI

您是对的,这个意外的值是由“scl_slope”参数引起的,当您使用“load_nii.m”时,正确地应用了这个参数。但是,我不确定您是否注意到这是一张放射学图像,即LHS在右边,RHS在左边。在这里,L/RHS的意思是左/右。

当你使用load_nii。m”,它将根据头部的仿射矩阵做所有适当的翻转和旋转,并且img将始终处于RAS方向(即x: L->R, y: P->A, z: I->S)。在特定的情况下,你应该使用[33 32 23]而不是[32 32 23],因为x轴是翻转的,即new_x = max_x(64) - old_x(32) + 1 = 33。

其他软件可以选择在轴向/矢状/冠状视图周围正确标记,例如,FSL这样做。

如果您有进一步的问题,请随时让我知道。

吉米

你好吉米,

你是对的,我试图用micro打开.nii文件,出现有关预期标头尺寸的错误。当我尝试导出.roi到.nii时,WROG步骤可能是,但实际上没有其他方法可以用mricro来做。我会尝试找到其他方式!

非常感谢您的帮助,再次感谢您的NIFTI工具!

弗朗西斯卡

刘魏

好的,我想我发现了缩放的参数:它们是hdr.dime.scl_slope和hdr.dime.scl_inter。现在我知道这些包的工作原理,如果我想要,我可以自己缩放体素强度。抱歉奇妙的问题,谢谢你的好工具!- 威西

刘魏

你好吉米,

读取NIFI文件时,我发现体素灰色值与其他工具不同。我所做的是:
- 'Untouch加载'文件:fmri_mean = load_untouch_nii(... / meanfm00223_004');
- MRI_mean.img的打印体素值(32,32,23)。该值为9506。
-但是当我用fslview打开同一个文件时,我发现相同的体素有不同的值。其他体素也不同。挂载fslview快照。因为在fslview中,体素坐标从0到dim-1开始,所以在fslview中相同的体素有坐标[31 31 22]。

-从itk使用应用程序'Imageviewer',发现体素值与fslview相同。还附加快照。与fslview相同,对于相同的体素,坐标为[31 31 22]。

-通过FSL工具'fslhd'检查nifti文件的头:
数据类型4
nberper 2.
bitpix 16

这意味着它是int16。

- 检查MATLAB中的FMRI_MEAN结构,发现数据类型为4:
数据类型:4
BitPix:16

但为什么你的NIFI工具与其他包裹提供不同的灰色价值?我把所有快照和nifti文件放在了www.sci.utah.edu/ weiliu / q01 /供您参考。

顺便说一下,这是一个很好的工具。谢谢!

对不起,不再评价....

吉米沉

嗨弗朗西斯卡:

首先,非常感谢你的评分,我真的很感激。

似乎“lcc_19850624trtn_2x2x2_b1000_a_fa.nii”损坏。你试图在micricro下成功打开它吗?如果是这样,请上传这个文件,让我看看它吗?

此外,从你发布的错误信息来看,你似乎在使用我的工具的一个非常旧的版本。我通过显示错误的行号注意到了这一点。但是,我仍然认为这个错误是由错误的形象造成的。

请让我知道,
吉米

亲爱的吉米,

我只是一个初学者与所有这些“nifti成像世界”,但我已经做了足够的理解,你做了一个非常伟大和聪明的工作!谢谢!

嗯,我在加载。nii文件时遇到了问题。(通过MRIcro导出。roi文件获得)。我将发布我得到的错误:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

>> ROI = load_nii('lcc_19850624trtn_2x2x2_b1000_a_fa.nii');
???使用==>重塑错误
为了重塑,元素的数量不能改变。

错误在==> load_nii_img>read_image在266
IMG =挤压(REPAPE(IMG,[HDR.DIME.DIM(2:4)长度(IMG_IDX)]))));

==> load_nii_img以62的错误
[IMG,HDR] = READ_IMAGE(HDR,FILETYPE,FILEPREFIX,Machine,IMG_IDX,OLD_RGB);

错误在==> load_nii在66
[nii.img,nii.hdr] = ...

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

你能帮我吗?

非常感谢,祝一切顺利!

弗朗西斯卡

吉米沉

嗨亚历克斯:

理论上,有了头信息在手,除了扫描折叠/展开之外,切片折叠/展开也是可行的。目前我还没有找到这样的工具,但是以后可能会考虑您的建议。

谢谢你的反馈。
吉米

吉米沉

嗨Wen-Tung:

问题可能在imagej使用的模块中。我尝试了Micricron,并与您所描述的结果相同。即,当hdr.dime.datatype = 32和hdr.dime.bitpix = 64时,它不支持。万博1manbetx当hdr.dime.datatype = 64&hdr.dime.bitpix = 128时,它可以工作。

为了确保ANALYZE格式应该支持什么数据类型,我再次检查了ANALYZE文档:万博1manbetx
http://eeg.sourceforge.net/analyze75.pdf.
它说Analyze格式应该只支持32/64,而不是64/128。万博1manbetx

我还尝试了像Afni这样的其他流行的软件。事实证明,AFNI支持32/64。万博1manbetx当我尝试了64/128时,它抱怨“不支持的分析数据类型= 64”,这是正确万博1manbetx的。

因此,如果您必须使用datatype=32 complex,您必须找到正确的软件来使用。AFNI是我刚刚测试的其中之一。

所有最好的!
吉米

亲爱的吉米,

我想使用具有相对较小的内存的计算机创建大nifti文件。似乎我可以通过一次处理多个切片,然后用collapse_nii_scan进行再处理来完成此操作。这似乎有点笨拙,我想也认为折叠部分是时间序列而不是拼接一个大容量?是否有一个工具将切片传输到NIFI文件中,假设我可以从头开始提供一些标题信息?

谢谢,
亚历克斯。

文桐王

谢谢你的噱头。
首先,对不起,我在我以前的帖子中没有更清楚。imagej是nih的免费软件(http://rsbweb.nih.gov/ij/index.html.)有许多用户在医学成像社区中。imagej有插件(http://rsbweb.nih.gov/ij/plugins/index.html),可以打开/保存图像的分析格式。我试图保存一个MRI图像,在使用Matlab脚本处理后,在Analyze格式,并使用ImageJ查看它。
我试过你非常好的榜样,它很好。然而,我仍然不清楚为什么imagej无法读取输出文件。使用DataType = 64,imagej可以读取该文件,但这不是正确的数据类型,图像上有正弦调制。
谢谢。
Wen-Tung

吉米沉

嗨Wen-Tung:

首先,感谢你的评价。

你的脚本是正确的,但我没有得到任何错误消息。你说“……试着阅读试卷。img使用ImageJ,…是打错字了吗?

下面是我测试的一个例子,你可以复制这个过程:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
img1 =兰德(3)
IMG2 = RAND(3,3)
myMat =复杂(img1 img2)
数据类型= 32;
安娜= make_ana (myMat,[][],数据类型);
save_untouch_nii(ANA,'C:\ Data \ Test');
安娜= load_untouch_nii (C: \ \测试数据)
nii = load_nii('c:\ data \ test')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

在测试上面的脚本时,你收到错误消息了吗?

吉米

文桐王

嗨,吉米:
我试图使用脚本保存Comlpex 2D矩阵(MRI映像)分析格式:
数据类型= 32;
安娜= make_ans (myMat,[][],数据类型);
save_untouch_nii(ANA,'C:\ Data \ Test');
尝试使用imagej读取test.img时,它给出了错误消息“不支持数据类型32”。万博1manbetx
是因为我没有正确使用脚本吗?
谢谢。
Wen-Tung

吉米沉

嗨马塔:

如何创建NIfTI文件?这里有一个可复制的例子:

nii = make_nii(兰特(91,109,91)* 255);
max(nii.img(:))
save_nii(nii,'mynifti.nii')

如你所见,体素的最高值永远不会设置为1,你可以打开“mynifti”。nii'与任何NIfTI兼容的工具。

有任何问题请尽管问。

吉米

M Var

嗨。

程序是伟大的,但我似乎有一个问题创建NIFTI文件与这个程序。创建的NIFTI文件通常是完全空白的,只有最高像素设置为1。这可以通过改变inout矩阵的比例(即将所有值乘以100)进行排序,但当我不知道这个错误背后的机制时,很难确定所有图像的正确比例。

你有什么可能有用的主意吗?

非常感谢,
玛尔塔

吉米沉

嗨Prateep:

当你加载一个图像文件时,例如:
nii = load_nii(“yourimg.nii”)

nii.hdr.dime.pixdim(2:4)将是体素的宽度,高度和深度。

如果使用View_nii(NII)查看它,请单击“View”,然后单击“图像信息”,“Voxel大小”是体素的宽度,高度和深度。

因为Analyze和NIfTI图像对于图像中的所有体素都应该有相同的体素大小,最大值和最小值应该是相同的。

可以通过在“[XYZ]初始”的“[XYZ]处于”的“[XYZ] AT Criverhair的原点”中的价值来获得来自原点的距离。从原点毫米的距离,由于“originAtion”的值为[0 0],您只能在“[XYZ]在Crosshair”的读取值。

请随时提出更多问题,

吉米

你好吉米,

我们如何找到最大和最小深度,宽度和高度在3d .nii图像使用你的工具,假设图像是在RAS方向?

此外,使用此工具,我们可以找到来自原点的像素的距离吗?请在这方面发表一些提示。

我现在正在使用的图像是“avg152t1_rl_nifti.nii”和“avg152t1_lr_nifti.nii”http://nifti.nimh.nih.gov/nimhi-1/data.

谢谢,
Prateep。

吉米沉

嗨,克里斯:

谢谢你的反馈。我已经解决了这个问题。相反,如果使用nii.img = double(nii.img);我只做了两个显示的三个2D图像。如果原始类型是UINT8,我会尽可能地离开它。

再次感谢您的反馈。我刚上传了新的节目,你可以在下周在这里看到它。

吉米

吉米沉

嗨Pieter:

那是因为你利用了我默认的“容忍”,允许10%的扭曲。你可以用我的"reslice "。M”程序,并精确地指定体素大小。

jiimmy

你好吉米,

你可以忽略我之前的问题,我在你的网站上读了FAQ…
我希望你有时间更新/扩展这个程序,它是非常有用的。

p

你好吉米,

我用你的漂亮工具使用标题有一些问题。

当我用load_nii_hdr加载一个4-D nifti文件头,并使用load_nii将它与.hdr字段的头进行比较,我得到不同的pixdim值:
load_nii_hdr:

nifti_hdr = load_nii_hdr(“nifti_file”);
nifti_image = load_nii(“nifti_file”);

nifti_hdr.dime.pixdim是[1 4.5313 4.5313 4.5000 200 1 1]
nifti_image.hdr.dime。Pixdim是[1 4.5212 4.5312 4.4900 200 1 1 1]

pixdim数组的差值为[0 0.01 0 0.01 0 0 0]

是我发现了漏洞还是我脑子里有漏洞?

p

嗨,吉米

在使用单格式中(本周)的数据时,view_nii似乎存在问题。当我切换到“Interp Off”时,单击其中一个面板移动串发时,其他面板会空白,我看到“警告:CDATA必须是双重或UINT8。”。我可以通过做一些这样的事情来解决这个问题:

nii.img = double(nii.img);

到目前为止没有其他问题,非常感谢您的漂亮软件!

克里斯

嗨,吉米

我有一个关于驾照的问题。matlab前端说这是BSD许可证,你的许可证。txt也是。然而,一些文件(包括load_nii。M和save_nii.m)包含行

在GNU许可证下复制和修改此文件的%部分
% MRI_TOOLBOX由澳大利亚弗林德斯大学CNSP开发

在我看来,这些文件也应该在GNU许可下分发。你能澄清一下吗?抱歉给你添麻烦了。

克里斯

吉米沉

嗨,麦迪:

是的,用我的工具很容易做到这一点。下面是步骤:

1.加载NII文件;
2.找到一个未使用的强度级别。如果没有,添加另一个级别;
3.在连续切片中找到圆圈和圆圈的索引;
4.用您在步骤2中选择的值标记它们;
5.创建Colormap文件;
6.用圆圈看大脑;

如果你仍然有问题创建圈子,请上传2 nii文件到你的ftp服务器。第一个nii文件应该是原始卷,第二个应该是有初始圆的卷。也请告诉我你想要这个圆画哪几片,画什么颜色。然后我会回复你包含圆圈的修改过的nii。

吉米

曼迪

你好吉米,

这是一项非常棒的工作,而且非常有用!我想知道我是否可以将它用于我的具体情况。

我们在头骨中插入的杆状观察室显示出在一些初始切片中的圆形MRI中。我想做的就是将圆圈的确切轮廓投射到几个更深的切片上,以便可以找到,腔室的突出部门位于连续切片中。因此,还可以找到在进一步插入杆状腔室内包环绕的区域。简单地说,就像将指定直径的圆圈叠加在每个连续切片上。

我尝试使用view_nii函数与view_nii函数一起使用,该函数保存在.jpeg / .fig格式,使用视图函数的帮助部分中的说明提供图形句柄和NII。但我对图形属性有困难,尤其是函数'set'。我几乎在每个数字属性中获得错误,从程序中的第291号线的“菜单栏”开始。我是Matlab的初学者。我真的很惊讶我可以使用其他函数,这就是我说你的文件是如此用户友好的原因。我很乐意知道我是如何做到的...

总而言之,我想知道的是,是否有一种方法可以在连续的切片上绘制一个圆(给定它的半径和位置)。

你好,妮可:

这是AC Origin的定义:
http://en.wikipedia.org/wiki/Anterior_commissure

为了使用'make_nii。m',你已经有了一个3D矩阵,你只能通过你的眼睛来辨别AC Origin,而不是通过任何转换。

因为'make_nii。m'为RAS方向,负z坐标为向下,即z坐标从下端到上端。

吉米

妮可

你好吉米,

我很遗憾地重复我的问题,但AC起源的条目仍然不清楚我,主要是因为我不知道是什么意思是“AC Origin”。

我现在知道体素被计数了(不是位置单位mm)。现在,问题中的原点是与大脑中切片板的x, y, z偏移量相关的吗(即在扫描过程中定位切片时的偏移量),还是切片板本身中的原点?我认为是前者。

如果是前者,那么我不确定为什么它必须相对于img(1,1,1),而不是slab的整体偏移量。我有我的偏移mm在读数,相位编码,切片方向。我能把这些值转换成体素数吗?

最后,z坐标负向上,或负向下坐标?(即更优越的切片将具有比更劣等的切片更大的负Z坐标)

作为侧面笔记,我只使用make_nii和save_nii,然后分析FSL中的数据。

希望这次我把我的困惑弄清楚了。谢谢你的帮助,

妮可

你好,妮可:

首先:'make_nii. '中的'origin'参数。M '为体素,相对于'img'参数的第一个体素,即img(1,1,1);

第二:如果我用一个例子来解释会更清楚:

IMG = 125:249;IMG = REHAPE(IMG,[5,5,5]);
nii = make_nii (img, (1, 1, 1), [3, 3, 2]);
view_nii (nii);

是的,我们知道AC Origin的单位是毫米。但是,您必须告诉NIfTI数据您的[0 0]毫米在哪里,这样其他人在打开NIfTI数据时也可以知道它。因此,参数“原点”只能用体素来表示,以确定你的3D矩阵的准确位置,使之成为AC原点。

吉米

妮可

你好吉米,

你的代码对我来说非常有用;我一直在使用make_nii和save_nii。我的问题是关于make_nii的AC起源。首先,我认为坐标应该是mm,就像体素大小一样。然后,我想知道AC原点是否指的是中央切片的位置。如果是,对于第三坐标(参考轴向切片),则负(例如-20)表示向上翻译(即更优越的切片)?这是我习惯的惯例,但我不确定它也适用于make_nii。

谢谢!

妮可

这些都是很好的读写NIfTI的工具——NIfTI是我所有程序的核心部分,并且得到了很好的支持。万博1manbetx谢谢。

西蒙•罗宾逊

Marianna Jakab.

请去掉下面链接的“:”,它将把你带到一个无效的页面。

在NIFI网站下提供两个示例数据集http://nifti.nimh.nih.gov/nimhi-1/data.:“avg152t1_lr_nifti.nii”和“avg152t1_rl_nifti.nii”。
而凡http://nifti.nimh.nih.gov/nimhi-1/data.是一个非常好的和信息性的页面。
谢谢。

所以si.

mmei rezk

Stefan Haufe.

Assaf Rmathalbazon.

经过奇妙的检查,这似乎是一个很棒的工具。

马克粗体

我一直都用这个。我的岩石。

吉米沉

斯特拉,

以下是答案:

它是正确的“nii_002.original.hdr.hist.originator”是[256 0 0 0 0],因为“t1_icbm_normal_1mm_pn0_rf0”正在分析7.5格式,“001”是不具有明显的“发起者的”001““领域。如果您仍然不清楚,请告诉我。

2.“nii_01.hdr.dime。Xyzt_units”只是一个信息字段。当它为1时,xyz以“米”为单位;当它是2时,xyz的单位是“毫米”;当它是3时,xyz用“微米”表示;当它为0时,xyz单位是未知的,只能由作者解释。我不知道为什么这个领域对你有帮助,也不知道这是否是正确的方式。

3.对于“NII_002.HDR.HIST.ORIGINATOR”来说,你得到了“[-2 -2 -2 -2 0 0]”是非常奇怪的。我需要查看“t1_icbm_normal_1mm_pn0_rf0.img / hdr”和“001.img / hdr”,以进一步回答这个问题。请您将其上传到您的FTP网站并发送给我链接?

斯特拉郑

1.我手动设置nii_01.hdr.dime.xyzt_units = 2;它现在可以通过FreeSurfer转换。谢谢!
2.其他问题可能是由于原始的Analyze映像是用大端序创建的,而这个工具箱用小端序编写新的Analyze文件。我不确定,也不知道怎么解决。

斯特拉郑

对不起。

2.在nii_002, Originator在nii_002.original.hdr。嗨st is [256 0 0 0 0], while it is [-2 -2 -2 0 0] in nii_002.hdr.hist.

斯特拉郑

亲爱的大家:

在使用这个工具箱的过程中,我发现了以下问题。
数据:t1_icbm_normal_1mm_pn0_rf0。rawb从brainweb下载,然后转换为Analyze格式(t1_icbm_normal_1mm_pn0_rf0。img和t1_icbm_normal_1mm_pn0_rf0。hdr)(没有* .mat)。

采用以下程序:

Nii_001 = load_nii('t1_icbm_normal_1mm_pn0_rf0', [], 1)
save_nii (nii_001, ' 001 ', 1);
Nii_002 = load_nii('001', [], 1)

预期头信息应该是相同的,但有以下差异:

1.在NII_001中,NII_001.Original.HDR.HIST中的始发者与NII.HDR.HIST为[0 0 0 0 0]。

2.NII_002,NII_001.original.hdr.hist中的始发者是[256 0 0 0 0],而它是[-2 -2 -2 0 0]在NII_001.hdr.hist中。

3.t1_icbm_normal_1mm_pn0_rf0的来源。img在MRIcro中显示为[0 00],001的来源。在MRIcro中显示的img是[2 2 2]

4. rot_orient = [],flip_orient = []在nii_001.hdr.hist和nii_002.hdr.hist,但不在他们的Origianl标题中。

5.当001.img在FreeSurfer中转换为* .mgz时,错误消息如下

mri_convert。/源自/ 001。img /源自/ 001. mgz
阅读/源自/ 001. img…
信息:阅读作为双文件nifti
nifti1Read(): unknown space units 0 in ./orig/001.hdr

如果有人可以帮助解决问题,非常感谢您的帮助。

最好的问候,
斯特拉,

大带宽、南洋Technoligical大学
新加坡,

斯特拉郑

我用于分析图像阅读和写作的最佳工具。非常感谢您的贡献和共享。

ning cao.

(可能的)错误报告:

一个很好的工具箱,用于加载,保存和查看分析MR图像。谢谢你不断地改进它。

我只想在20070426版本中报告一个可能的错误。

使用View_nii查看4D图像时,“Crosshair”的“值”和“光标值”始终显示第一个3D音量的值。

view_nii.m l3036,代码'imgvalue = double(img(sag,cor,axi));'使ImgValue始终是第一个3D音量的值。

ABBAS Kader.

在MATLAB中查看Nifti格式文件的一个很好的工具箱,特别是当你在FSL中处理,你想在MATLAB中解释
谢谢

杰夫一

我找到了读取动态分析文件的最佳实用程序

r黄

你好吉米,

你的软件很有用。非常感谢你的好意。

请问(1)如何将2或3个其他图像一起叠加在一起,(2)如何选择不同的阈值?

提前致谢

rhuang

克雷格汉密尔顿

非常有用,做得好。如何支持复杂数据类型万博1manbetx?

吉米沉

scl_slope如何影响data_type?

嗨ged:

谢谢你发给我的网址。jonas处理“scl_slope”的方式是将图像数据类型转换为“double”,这是有道理的,尽管它未在NIFI文档上指定(请参阅下面的URL):http://nifti.nimh.nih.gov/nifti-1/documentation/nifti1fields/nifti1fields_pages/scl_slopeinter.html

我修改了“xform.m”。所以在使用“scl_slope”的情况下,它会将图像数据转换为“double”。我正在将这个文件更新到MATLAB中央文件交换,NIFTI_20060307将很快出现在那里。

再次感谢你宝贵的意见,

吉米

——原始邮件

你好吉米,

谢谢你给我回电话。不幸的是,在这种情况下,其他东西肯定是错误的,因为在Matlab中的图像只有值0或1,而在FSLview或SPM中查看的图像的值范围在0和1之间,图像类型是uint8。

最好,
GED。

吉米沉

如何从Nifti HDR获取原始信息?

嗨ged:

非常感谢您的输入。

实际上,“scl_slope”和“scl_inter”参数都已正确
读取并应用到输出NIFTI结构的"img"变量(参见
“xform_nii。m”文件):nii。Img = scl_slope * double(nii.img) + hdr.dime.scl_inter;

显示“hdr.dime.scl_slope”为零的原因是我的一个功能
包裹。它表示已经修改了“IMG”变量。你
也可以找到“hdr.hist”。qform_code”和“hdr.hist。sform_code”将
在真仿射变换后置零。

“HDR”的原始值可以通过以下方式轻松找到:HDR =
load_nii_hdr(文件名);这里应该有正确的值(0.003922)。

吉米

——原始邮件

你好吉米,

我发现你的nifti工具箱非常有用,但我有一些
问题与一些数据存储在uint8 .nii与缩放因子。
数据以二进制图像的形式加载,值
nii.hdr.dime。Scl_slope是0,而不是正确的值
(0.003922)我可以使用e.g.来自FSL的SPM5或AVD。

非常感谢你提供的任何帮助,

GED。

吉米沉

嗨亨利:

这是一个高级功能,它已包含在工具箱中。

以下是使用此功能的简要指南:

1.使用“ANA = LOAD_NII(ANA.IMG)”将分析图像加载到“ANA”结构,并确保变量“ANA.IMG”为“单”或“双”。如果没有,请使用步骤2转换它。

2.要将变量“Ana.img”转换为“单个”,则需要使用“make_nii”命令:“ana = make_nii(ana.img,ana.hdr.dime.pixdim(2:4),ana.hdr。Hist.Originator(1:3),16)“。

3.使用"thresh = load_nii(threshold .img)"将阈值图像加载到"thresh" struct,并将其值和索引提取到"opt" struct: "opt.setvalue. "idx =找到(thresh.img);opt.setvalue.val = thresh.img(找到(thresh.img));。你可以通过命令"help view_nii"来查看使用"setvalue"的更多细节。

4.将其他值添加到“opt”结构:“opt.command ='init'; opt.useinterp = 0;”。

5.通过命令“view_nii(ana, opt);”绘制阈值图像和已分析图像。

6.不要单击“Interp On / Off”菜单。它无法正常工作。如果您希望看到插值的一个,请使用:“OPT.USEINTENTP = 1; View_nii(ANA,OPT);”相反。

请让我知道,如果你能绘制你的阈值图像与分析图像的衬底。

吉米

——原始邮件
我最近一直在使用MATLAB的NIFTI工具箱,并想知道是否可以将阈值的图像覆盖在分析的图像上。实际上意味着阈值图像的所有0值应该是透明的,以便可以看到底层的功能图像。

非常感谢您的预先帮助,并使这样一个有用的工具可用!

你的真诚,

亨利Lutcke

bioomedizinische NMR Forschungs GmbH

Am Max-PlanckInstitutfürBiophsysikalischeChemie

点Fassberg 11

37077Göttingen.

德国

杨直

吉米沉

嗨Anita:谢谢你的反馈。但是,我检查但没有发现使用非整数数据类型加载或保存NII文件的任何问题。例如,您可以从以下命令下载典型的NIFTI数据(zstat1.nii):http://nifti.nimh.nih.gov/nimhi-1/data.此文件位于单个(float32)数据类型中。您可以使用:nii = load_nii('zstat1.nii')输出到NII结构,并使用以下内容输出到新文件:save_nii(nii,'newfile.nii')。如果您还有问题,请给我发电子邮件,让我看看你的数据。

安妮塔维

当我将NII文件输出为int时,此程序运行良好,但当我将NII文件输出为unint时,图像会失真。

更新

1.27.0.0.

1.感谢西方大学的Chris McNorgan的反馈和贡献。M现在有方向矢量的可选参数。
2.新程序Pad_nii.m与Clip_NII.M一起使用。在FAQ.PDF中看到示例。

1.26.0.0

由于体素大小可以小于0,因此我将在Resllice_nii.m中将默认的Voxel_size从舍入的最小Voxel_size更改为原始NIFTI标题中的绝对最小Voxel_Size。这是固定的reslice_nii错误。

1.25.0.0.

增加了一些新功能,并修复了一些bug。详情请浏览:

http://www.rotman-baycrest.on.ca/~jimmy/NIfTI

1.24.0.0

由于从开普敦大学的Matthew Bickell的反馈,在毫米单位编辑体素时,会修复一个错误。

1.23.0.0

“make_nii。M”现在能够自动检测单和双复杂数据类型。

1.22.0.0.

修正了昨天发布的bug

1.21.0.0.

您现在可以使用make_nii / make_ana程序创建RGB NIFTI / Analyze文件结构。

1.20.0.0.

提供了新的程序“load_untouch_header_only.m”和“save_untouch_slice.mm”。检查http://www.rotman-baycrest.on.ca/~jimmy/nifti有关更多详细信息。

1.19.0.0

在“View_nii”程序中添加了新功能,以允许您编辑体素值或设置地标。还要感谢罗马的代码,当切片不加载时加速“Load_untouch_nii_img”程序。

1.16.0.0

1.修复了view_nii.m中的叠加问题,因此Min / Max的颜色现在显示出正确。
2.包含叠加示例http://www.rotman-baycrest.on.ca/~jimmy/NIfTI/FAQ.htmhttp://www.rotman-baycrest.on.ca/~jimmy/NIfTI/examples.txt

1.14.0.0

由于Yeshiva大学的Roman Fleysher的反馈,我修复了加载四元数据的爆发虫。

1.13.0.0.

感谢荷兰奈梅亨大学的伦勃朗,我做了两个小改动来处理例外情况。

1.12.0.0.

修正了“collapse_nii_scan”崩溃分析格式数据的错误。

1.11.0.0.

1.“load_untouch_nii”现在支持加载万博1manbetx特定的nifti或分析格式。
2.MATLAB要求我删除任何文件中的任何“在GNU许可下”短语。

1.10.0.0.

“load_untouch_nii”现在支持加万博1manbetx载特定的nifti或分析格式。

1.9.0.0

虽然使用“make_nii / save_nii”命令对,但是n维矩阵可以保存到nifti文件中,但也可以使用“make_ana / save_untouch_nii”来将3D矩阵保存到分析文件中,以便与某些分析仅兼容程序。

1.8.0.0.

修复了几个错误,并发布了信息表:

http://www.rotman-baycrest.on.ca/~jimmy/useanalyze.htm.

1.7.0.0

只需收到Matlab的警告:“如果我没有使用BSD许可我的代码,我的代码将被删除。”

1.6.0.0

感谢匹兹堡大学的Kate Fissell的反馈,save_untouch_nii.m将不再保存变换矩阵M。

1.5.0.0.

1.感谢来自USC的Bryce Wilkins的反馈,我的一个信息显示中的错字被修复了。

2.由于从康奈尔建议,“扩展_NII_SCAN.M”的建议被修改并添加了“COLLAPSE_NII_SCAN.M”。

1.4.0.0.

'make_nii '的默认数据类型。M '现在跟随'img'矩阵的数据类型,而不是float32。

1.3.0.0.

修复了读取文件时pliplr.m中的错误。

1.2.0.0

更新没有显示

1.1.0.0.

1.在Matlab 7及以上的外国字符正确地处理欺诈/'* char'问题;2.重新排序的“Reslice_nii.m”程序的输入参数;

1.0.0.0

将Load / Save / Make程序扩展到N维度,其中N可以为NIFI数据和3到4的3至7用于分析数据。

“load_untouch_nii补充道。m”和“save_untouch_nii。m”程序。详情见上面的描述和常见问题http://www.rotman-baycrest.on.ca/~jimmy/NIfTI/FAQ.htm

为“reslice_nii”增加了一个“verbose”参数。M”提供一个机会来禁用进度显示。

1.新项目reslice_nii。m用于执行任意三维仿射变换并生成各向同性图像。2.新项目flip_lr。m用于L-R翻转。请查看更多详细信息:http://www.rotman-baycrest.on.ca/~jimmy/nifti/#Update.

感谢来自杜塞尔多夫海因里希-海涅大学的Holger Krause的反馈,“mat_into_hdr”中的bug。当包含路径的输入文件被修复时。

增加了一个新的特性来加载和保存NIfTI的头扩展(添加了load_nii_ext. txt)。m"和修改"save_nii.m"),并修正了加载qform数据时的错误,这是在01-FEB-2008年引入的。

感谢来自Mayo的Jeff Gunter,他建议在非常倾斜的图像中显示一个警告信息,而不是抛出一个错误。尤其要感谢他在应用体素大小调制之前检查qform旋转的代码。

感谢Ning Cao从Uky报道并修复了View_nii.m文件中的错误。请查看更多详细信息:http://www.rotman-baycrest.on.ca/~jimmy/nifti/#Update.

1.修改了save_nii命令,所以早期版本的SPM也可以用正确的originator打开它。2.修改http://www.rotman-baycrest.on.ca/~jimmy/nifti/faq.htm.有几个类别

1.自动集成仿射矩阵在。mat文件的早期版本的SPM到。hdr结构。2.修正了“mat_into_hdr.m”中的一个错误。详情请浏览:http://www.rotman-baycrest.on.ca/~jimmy/nifti/#Update.

1.“view_nii”窗口的“File”菜单中添加了“Save display image as…”2.删除“hdr. hhistory .originator”的整数四舍五入。详情请浏览:http://www.rotman-baycrest.on.ca/~jimmy/nifti/#Update.

改进了数据缩放过程,并在计算原点位置时修复了错误。细节将发布http://www.rotman-baycrest.on.ca/~jimmy/nifti

“mat_into_hdr补充道。m”脚本将ANALYZE 7.5 SPM Reoriented图像文件转换为NIfTI格式,并将其matlab文件中的仿射矩阵集成到其头文件中。

由于四元数的四舍五入(quatern_b/c/d),根号(1.0-(b*b+c*c+d*d))可能变得复杂,因为根号内的值可能低于0(例如-1e-6)。这里用的不是复数,而是0。感谢Jeff Gunter报道了这个问题。

感谢WUSTL的Michael Harms,他报告并修复了加载和制作RGB数据时的一些bug。他还添加了代码来保存与AnalyzeDirect兼容的RGB数据。

1.来自Jeff的"unxform_nii"提供了一个将图像方向放回原始状态的选项。2."expand_nii_scan"被修改,因此扩展的图像文件将被附加一个4位数的数字。

1.在将一些排列的图像转换为RAS方向时出现了一个错误。现在已经修好了。感谢来自Mayo Clinic的Jeff Gunter谁报告了这个错误。

2.如果hdr.dime.glmax和glmin更新。scl_slope是非零的。

某些图像数据的大小不正确地大于“hdr.dime”中指定的大小。暗”字段。这就造成了加载图像数据的问题。图像数据现在总是根据其头部指定的大小加载。

它现在同时支持万博1manbetxCOMPLEX64和COMPLEX128数据类型。

它现在同时支持万博1manbetxCOMPLEX64和COMPLEX128数据类型。

“nii.hdr.scl_slope”将采用“AVW.HDR.ROI_SCALE”值,这是一个非分析7.5字段,但仅由SPM使用。

在使用“scl_slope”的情况下,图像数据类型将被转换为“double”。

在“HDR.HIST”下设置“rot_orient”和“flip_orient”字段为旧分析7.5格式,或者如果NIFI数据已在RAS方向上。

1.修正了一些NIFTI数据重新排序“pixdim”和“originator”字段的错误。2.在hdr下增加了"rot_orient"和"flip_orient"字段。嗨st" if package make conversion of the NIFTI data into RAS orientation system.

修复了在执行SFFOR / QForm变换时重新排序“PIXDIM”字段的错误。感谢来自Mayo Clinic的Jeff Gunter谁报告了这个错误。

1.修复冠状和矢状视图初始显示的错误
2.添加了一个函数,将多扫描nifti文件展开到多个单扫描NIFI文件中

NIFTI_20051128测试从MATLAB版本R11到R14在PC和Linux上

更新代码

修改了RGB24数据值显示格式。

添加菜单栏将图像转换为标准RAS方向并显示图像信息。

更新的帮助文件“View_nii_hlp.txt”。

更新帮助文件"view_nii_hlp.txt"

它现在支持ne万博1manbetxw_RGB (RGB三重)和old_RGB(由AnalyzeDirect Inc的Analyze 6.0使用)。帮助文件“view_nii_hlp.txt”也被修改。

它现在支持ne万博1manbetxw_RGB24 (RGB三重)和old_RGB24(由AnalyzeDirect Inc的Analyze 6.0使用)。帮助文件“view_nii_hlp.txt”也被修改。

我没有看到'xform_nii。m'已在文件交换中更新。所以,我再次上传了另一个zip文件名。

还将加载Cartesian Cocordinates略微偏离笛卡尔坐标的图像。在“xform_nii.m”中看到细节。