图片缩略图

NIfTI和分析图像的工具

version 1.27.0.0 (426 KB) by 吉米沈
在任何平台上加载,保存,制作,reslice,查看(和编辑)NIfTI和ANALYZE数据

513下载

更新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, origin等),制作N维NIfTI结构(其中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.clip_nii。m:在NIfTI结构中,从6个侧面中的任何一个截取体积,同时保持发起者、体素大小、数据类型和描述不变。在使用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. collass_nii_scan.m:将多个单扫描NIFTI或分析文件集成到多扫描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.tatmou.com/matlabcentral/fileexchange/8797-tools-for-nifti-ananalyze-image),Matlab中央文件交换。检索到

评论和评级(222

Edite Figueiras.

你好,我有一个大数据集(大约100gb),我想以nii格式保存。我无法打开完整的数据集,因为我没有足够的内存。有没有一种方法来保存完整的数据集在一个nii文件?

你好,有没有可能保存图像在nifti格式(从分析转换)不修改nifti图像的头部?
我有程序不会让我打开它,因为标题被修改,尤其是帧持续时间。(我一直在使用save_nii函数)。我的电子邮件是a.vigil@alumnos.upm.es。
谢谢。

darova

你好,
我得到22边带作为输出。如何将此连接到CSV文件?

马库斯·阿达梅克

我遇到的问题是,在默认情况下load_nii允许从正交变换,其结果是相当多的10%的偏差。

马库斯·阿达梅克

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

贾基尔Aralbaev

我下载了NIFTI压缩包。文件将它们保存到文件,然后添加到Matlab中的Set路径。现在我怎么打开工具箱?在matlab命令窗口中输入什么?

钱谦方

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

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

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

JNIFTI工具箱可以使用基于Java的GZIP压缩,与此工具箱相同,但也可以使用Zmat Toolbox(//www.tatmou.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矩阵(它肯定不是一个舍入错误)。因此,这个工具箱在过去的几个月里给我带来了很多麻烦,当您甚至不能确定这些实用函数是否在工作时,要排除代码的故障是非常困难的。我认为这些批评只是建设性的,并作为对其他人的警告,但我还是感谢作者的努力。

nermeen abdo

我下载了NIFTI压缩包。文件将它们保存到文件,然后添加到Matlab中的Set路径。现在我怎么打开工具箱?在matlab命令窗口中输入什么?

何塞波旁电话

大家好,

我下载了NIFTI压缩包。文件将它们保存到文件,然后添加到Matlab中的Set路径。现在我怎么打开工具箱?在matlab命令窗口中输入什么?

Jayendra Bhalodiya

Haoran Liu.

D. Li.

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

郝张

NSSK Suraj.


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

Jobin T菲利普

S.

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

Umit窑

大家好,谢谢分享。它的工作原理。我的工作是大脑核磁共振成像,需要对它们进行一些图像处理。我如何将它们转换为适当的文件,以实现一些图像处理/挖掘操作。

安德烈·席尔瓦

Helmar Waiczies

Javaid伊克巴尔

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

语tekchandani

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

语tekchandani

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

西尔维亚Caminiti

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

谢谢
西尔维亚

斯特拉古尔德纳

你好吉米,

我正在尝试使用工具箱将我的图像的数据类型从int16更改为float32。我在早期的评论中看到了这可能是可能的,但我对转换有一些麻烦。这是我到目前为止所做的事情:

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

我得到的错误消息是:make_nii不支持数据类型。金宝app

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

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

法尔扎纳帕伦

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

盾级金

Ellankavi Ramasamy.

你好吉米,

谢谢你的工具箱。这真的很有帮助,我想引用你的工作。我怎么能引用你的工作?

谢谢,
Ellankavi.

熊猫大

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

安吉丽娜B。

你好~
我有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”);
错误:索引超出矩阵尺寸。

如何解决这些问题?

谢谢你!

海博

夏天

Eteri Karamamedogly

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

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

周案

这在工具箱自带的FAQ.pdf的第一个“方向相关问题”中有解释。对于一些NIfTI文件,只需要加载和保存就可以了,无需做任何进一步的修改。然而,这种翻转不会在新的NIfTI文件中发生。

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

Hesham Alghodhaifi

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

卡尔Spuhler

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

这是非常简单的。只是,对于图像称为NII和给定的阈值th:

nii = nii> th

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

Shereen Ekhlas

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

李家张

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

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

斯特凡诺Orsolini

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

放射学引用的图像变为神经根学上默默地引用。

imu931

卡尔Spuhler

王建

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

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

贾斯汀格莱伯

你好,

你知道的正确方法我可以使用“rot_orient”和“flip_orient”重新调整bvectors信息到RAS的dwmri。例如,我装我的DWI与load_nii()以下后,分别是:

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

我如何使用这些字段来改变翻转/置换bvector(在FSL格式)也将它们转换为RAS?

谢谢!

阿卡纳malagi

你好,
请帮助,在使用rri_orient时出现错误:
nii = rri_orient('a_0424_mr1_mpr-1_anon.nii','new');
尝试参考非结构阵列的字段。

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

alaa shamasneh.


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

大卫Groppe

感谢这段非常有用的代码!

大卫Groppe

阿里Aghaeifar

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

以利亚摇滚

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

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

我该怎么做呢?

Alize

乔的家伙

谢谢你的这些工具。事实证明,它们非常有用。然而,最近我发现load_nii模块已经停止工作。我重新下载了工具集,仍然有相同的问题。

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

xform_nii> change_hdr(行465行)错误
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补丁文件):
--- a / 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运算符从“|”改为“||”。

sahil聊巴贾杰

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

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

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

我有4维(X,Y,切片,时间)的T1映射(.nii格式)和感兴趣文件的体积(.nii格式)。我想从T1地图中提取时间活动曲线对于这个特定的VOI我想在MATLAB中绘制它。

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

如果有人能帮我解决这个问题,我将非常感激!

谢谢,
Sahil聊

Priyanka Mehta.

这是一个很棒的工具!

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

感谢任何帮助/建议。

Brian C Coe.

我缺少一些东西,或者没有生成的DICOM到NIFI转换功能...... ???
e.g .:
nii = d2n('src_folder','full_path \ output_name')

似乎有很多,但每个使用不同的格式加载到matlab。所以如果我使用不同的DICOM2NIFTI转换器比这些文件在这里不能正确加载它们。我看到一个make_nii(),但它实际上不是从dicom转换…还是我遗漏了什么?

谢谢你的时间。

票价十字军

你好,
有可能知道nifti图像的像素的值吗?因为我没有找到任何这样做的功能。我想知道NII图像的特定像素的值。
谢谢你!

kb

Aditya Daryanani

我试图保存一个二进制3d nifti掩码,但当我试图保存它时,我更改了变量nii.hdr.dime.bitpix和nii.hdr.dime.datatype为1。我能够保存这个NII,但没有外部程序,除了Matlab能够读取它。我尝试用ImageJ和ITK-SNAP打开它,但他们都无法读取它。

汉克Jedema

谢谢你写了这个漂亮的函数。我试图在模板MR图像上绘制一系列roi(每个roi的颜色反映了p值)。我得到了基本的工作,但我似乎不能翻转颜色图,以便较低的p值与更多的红色相关(使用默认的双极颜色图)。通常我会在颜色矩阵上使用flipud函数,但我似乎不能让它工作。任何建议将非常感谢。非常感谢。

Jon Cleary.

Ioannis.

Ioannis.

你好。

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

问候,
Ioannis.

Sherryse克鲁

我是这个工具箱(和matlab)的全新,我试图加载.nii文件。我输入了命令窗口以下内容:
>> topface = load_nii('/Users/MRIuser/fMRI/Homunculus2/P121/Experiment.feat/stats/zstat1.nii')

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

>> uiopen( '/用户/ MRIuser /功能磁共振成像/ 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”在头文件中还是从其他参数解释?

谢谢!

m

你好,
所以我正在检查你的工具,非常有助于查看Matlab的.nii.gz文件,但如何使用它将我的文件保存为具有相同大小的.mat文件(256 * 256 * 50)。

谢谢,
Mayada

janki mehta

你好,

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

谢谢,

Janki

Meytal

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

我在加载一些文件时遇到了问题。
我在FSL中准备了一个掩码文件,并希望将其加载到MATLAB中,以及一些功能文件。
问题是仿射矩阵对我的2个拍摄对象具有非正交旋转,因此我不能使用“load_nii”。
我不确定我是否可以使用“Reslice_nii”,因为我仍然需要这个掩码文件与我的功能文件具有相同的维度。
任何想法都会受到非常感激!
谢谢,
Meytal

kb

杰里米·曼宁

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

非常感谢!!!

山文

我正在加载和查看.nii文件时遇到了Matlab代码。我目前正在努力实现自闭症患者的脑部映射和脑成像。我已经从柬数据库中获得了患者的MRI图像。但我真的是matlab的新手。我无法理解这段代码如何工作。它说要用文件名替换文件名,我做了相同的。但我想它需要一些更多的编辑,以便我可以使用它。你能帮我,如如何使用这个代码。

易苏

伟大的工作!
我对它进行了一些更新,并添加了一些新功能。
请检查
//www.tatmou.com/matlabcentral/fileexchange/47072-3d-nifti-data-viewer

基督徒

基督徒

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

保罗Groot

嗨Sangeetha,

关于Lapack加载错误:( dlopen:无法使用静态TLS加载更多对象)

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

http://www.mathworks.de/金宝appsupport/bugreports/961964.

似乎有一个新的解决方案,但之前的建议是在startpm中添加以下一行:

(10) *兰德(10);

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

保罗

Sangeetha

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

错误使用相同
Lapack加载错误:
Dlopen:不能加载任何对象
使用静态TLS

xform_nii> change_hdr(行
327)
如果DET(R)== 0 |
〜Isequal(R(查找(r)),sum(r)')

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

误差在load_nii(线185)
Nii,公差,
preferredForm);

Xen.

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

吉米沈

你不能这样做。当需要加载时检查faq.pdf_nii或load_nii

Israna

如何查看由load_untouch_nii.m加载的图像?

吉米沈

因为它不是view_nii解释和适用的头信息的业务。

Israna

谢谢代码很有帮助。

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

谢谢

克莱尔

对不起,我找到了,感谢您的令人惊叹的功能

卢克谢

伟大的功能
谢谢你的更新

吉米沈

尼古拉斯,请告诉我到底是什么“线索”或“信息”让你感到困惑。另外,请告诉我你想做什么。

尼古拉斯•于

View_nii不太作用。
你给出的一个例子很好,但是对于我的大数据来说,它为我使用load_untouch_nii.m时使用load_nii.m,但是在使用load_nii.m时使用load_untouch_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)在您做出更改的方式编辑。

此外,如果输入文件为Analyze 7.5格式,则输出文件将保持Analyze 7.5格式。如果输入为NIfTI格式,输出将保持为NIfTI格式。

这就是为什么我有“load_untouch_”以及“load_”功能。但是,在大多数情况下,您想要使用“Load_”功能,因为您不想在标题中解释仿射矩阵,并使您自己的各种翻转和旋转,是吗?

mylyu

嗨,吉米

有没有办法加载、编辑和保存。hdr而不需要对.img做任何事情?因为我发现SPM每次做共同注册时都会改变我的源文件头,我想把它改回来。似乎save_nii_hdr()是一个内部函数,我尝试使用它,但破坏了我的nifti文件。

谢谢,
Mengye

NH

完美!谢谢你!

吉米沈

数据为“情节”只包含的坐标信息,而在网格上被分布被假定为“make_nii”需要强度值数据与它的坐标从1到电网的渔政。此外,与情节,对于图像坐标只包含整数。因此,你不能直接从情节中提取数据,并使其图像。

导出绘图数据到图像是一个简单的选择。我觉得你已经做得很好了。你所要做的就是隐藏背景图像和坐标轴,然后再将图导出为图像。以下是如何做到这一点:

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

2.通过运行隐藏轴:

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

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

h =得到(gca,“孩子”);
i = 1:长度(h)
如果strcmpi (get (h (i),“类型”),“图像”)
集(h (i),“可见”,“关闭”);
结束
结束

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

NH

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

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

Orestis

Guilherme可可Beltramini

吉米沈

“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卷。我是不是遗漏了什么?

埃德加·格瓦拉

Berkin Bilgic.

吉米沈

嗨智:

“collapse_nii_scan。M "将做这项工作。

嗨Samiy:

该工具不能用于提取脊髓。但是,一旦提取它并保存到另一个分析/ 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)?

非常感谢。

mark

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

吉米沈

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

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

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

3.假设我有一个变换矩阵,这将让参考图像在XY平面上逆时针逆转30度,这里将是矩阵:t = [cos(pi / 6)-sin(pi / 6)0;SIN(PI / 6)COS(PI / 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);

希望这是答案你的问题。

mark

你好,

是否有可能使用Reslice_NII将变换应用于NIFTI卷?例如,如果我有一个转换矩阵,这是具有解剖卷的功能的3D CoreGistration的结果,我可以使用Reslice_Nii将该转换矩阵应用于功能卷以将其转换为解剖结构吗?如果是这样,有机会的一些示例代码?

非常感谢您的有用的代码。

Wannabegeek

吉米沈

回复您的第一条评论:问题是您把“make_nii”和“_untouch_”版本混在一起了。如果你使用"make_nii"来获得NIfTI结构,它必须使用"save_nii"来保存。

要回复您的第二条评论:如果您知道NIFI结构,请确保您可以修改它,然后使用“save_nii”来保存它。您甚至可以使用“Save_NII”将“非正交”NIFTI结构保存到文件中。

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

顺便说一下,如果您拍摄原始的NIFI文件,并将其带到其他软件以显示(例如SPM),它们也将为您重新重新重新重绘。

非常感谢您的评分!

Wannabegeek

我想我弄明白了。

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

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

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

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

Wannabegeek

你好吉米,

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

我用load_untouch_nii()加载nifti 4D数据集,不做任何更改,然后尝试用save_untouch_nii()保存,并得到一个失败的消息:用法:请使用'save_nii。M '表示修饰结构。

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

nii = load_untouch_nii(“foo.nii”);
数据= 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”);
Max(A1(:)),获得3.3943E-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.0000 e + 12

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

迈克尔

嗨,吉米。我想我正确理解了你的工具,我确实使用了“load_nii”。我现在把数据发给你。

吉米沈

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

迈克尔

我的第一个帖子没有被提交。我是说,程序未能显示正确的值分析文件与双数据类型。Matlab analyze75read工作没有问题。
你知道为什么这是什么?

迈克尔

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”被修改了。它应该像这样"function [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(文件名);

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

谢谢你的帮助!

迈克尔

吉米沈

nifti支金宝app持“.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.

如果是这种情况,你可以使用我的“collapse_nii_scan”。我不愿意这样做。输入help collapse_nii_scan以获取更多信息。

对于文件扩展名,此功能将遵循您拥有的任何内容。即,之后仍然会获得一个.hdr / .img文件。

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

Lirong谭

你好,

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

吉米沈

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

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

如果您想更改体素值,请使用“load_nii.m”加载NIFI文件,然后使用“View_nii.m”编辑Crosshair(在“编辑”选项卡下),然后单击“保存”显示图像“在”文件“选项卡下。

你的情况中不一致的原因是你自己没有正确解释标题中的缩放因子。

Priya.


我正在使用NIfTI工具和分析图像。这真的很有帮助,我真诚地感谢您为研究社区分享您的工作。

我使用的是。hdr和。img格式的图片。我试图改变像素值1到5,然后保存为。img。我使用view_nii函数查看保存的图像。我可以找到像素值为5,我做到了。但如果我在查看器中打开这些图像,如MRIcroN和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 =零(大小(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”时,您保存的文件将始终在NIFI中而不是分析格式。

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

最后,我已经测试了使用'load_nii.m'加载许多分析和nifti文件,然后使用'save_nii.m'保存到nifti文件。我没有发现数据尺寸“增加值得注意”。如果有可能,请将原始分析数据上传到我可以访问的某个地方,并通过电子邮件给我发电子邮件(不要使用电子邮件附件),因此我可以尝试复制您的问题。

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

杨刘

亲爱的大家:

在使用这个工具箱的过程中,我发现了以下问题。
我可以通过'load_nii.m'获取analyze格式文件中的数据。
但当我保存数据分析格式文件与'save_nii。M '不作任何改变,数据量显著增加。

泰勒

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

但是,救济不是一种选择,因为我们使用SPM首先注册图像,因此我们需要他们所在的当前空间中的niftis(我将在录制图像上,但我不知道这就是此时的可能性)。

吉米沈

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

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

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

请查看我的NIFTI网页了解更多详情:

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

泰勒

编辑:错误

load_nii (pathTo.imgFile)
* * ? ?错误使用==> xform_nii>change_hdr在236
此nifti数据的转换不受支持金宝app
计划**。

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

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

泰勒

沈先生,

这套包装,我一般都取得了良好的成功;但是,在处理SPM NIFIS(http://www.fil.ion.ucl.ac.uk/spm/我无法加载与load_nii。

我必须使用load_untouch_nii,然而,当我使用这个,NIFTIs是在一个随机的空间方向,与图像矩阵需要被翻转和/或旋转以在正确的方向。

你知道一个方法来解决这个问题?这大大减缓我的研究:/

谢谢!

泰勒

Navid Samavati

是的,现在你提到有时旧的分析格式被读取为[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。

希望这有帮助。

Navid Samavati

谢谢您的回复!

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

吉米沈

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

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

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

Navid Samavati

你好吉米,

我找不到头结构中x、y和z方向的像素或体素的起始位置。我使用load_nii读取我的分析图像。图像很好。我就是找不到起始位置。

谢谢,
诺维

吉米沈

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

Whemberton

嗨,吉米。这是一个很好的代码。

我有一个问题。我如何做提取一个4D nifti脑体积的单个切片,并保存到一个常规的图像文件(即:jpeg, bmp…),使用一个常见的彩色地图(即:ge_color)??

谢谢你的关注。

W.

维克多Alchanatis

吉米沈

您可能不会注意到“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”,它只是根据您的N-D矩阵为您创建一个NIfTI结构体。

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

小宁唐

你好吉米,

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

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

最好的
小宁

吉米沈

胡安:你好

您可以查看以下内容的“关于叠加的问题”类别:
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);”相反。

如果你还有什么问题,请尽管问我。

吉米

胡安

嗨,吉米。
非常感谢您提供的这个非常有用的工具箱。
我的问题是关于如何覆盖在图像。我需要覆盖图像上每个体素的主要特征向量;我有x, y, z方向的体素在matlab数组了,但是我想知道我怎样才能显示在同一图像或如果它可能修改代码保持的主要形象,摆脱所有的选项你给喜欢颜色和十字丝的位置,等,因为我主要需要显示图像和显示它的特征向量。
谢谢,
胡安

吉米沈

嗨preeti:

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

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

PREETI.

我正在使用分析Direct软件进行肺癌检测和检索。我已经将肺部从胸部CT扫描分段为300多片(DICOM)。我已经保存了.avw格式以及分析了7.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"。

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

你可以直接改变头信息(如果你熟悉NIfTI头),然后使用“save_nii”,或者使用“make_nii”来创建一个新的NIfTI结构(像nii)。

例如:
数据类型= 16;%更改数据类型为float32
nii2 = make_nii (nii。Img, nii.hdr.dime.pixdim(2:4), nii.hdr. hhistory .originator(1:3), datatype);
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.hdr”是描述“nii.img”定向的标题信息,什么是体素大小,发起者以及更多。

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

如果您有进一步的问题,请更具体地(例如,制作点列表),所以我知道如何帮助您。

吉米

安妮 - Lene.

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

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

安妮 - Lene.

吉米沈

嗨Anne-Lene:

没有问题是愚蠢的。

是的。你可以使用我的工具在NIfTI图像分开看,并将它们转换为另一种数据类型。

因为NIfTI同时支持i金宝appmg/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”保存。

如果你还有其他问题,请具体一点,我可以帮助你。

吉米

安妮 - Lene.

这就跟你问声好!

我是使用nifti的初学者,所以这似乎是一个愚蠢的问题,但我希望你能帮助我。

我已经使用fsl前奏展开我的核磁共振成像,他们现在在nifti格式。我现在需要比较这些图像与图像,我已经展开与matlab算法,我自己做的。

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

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

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

安妮 - Lene.

吉米沈

嗨大卫:

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

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

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

吉米

大卫

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

我只是想知道是否有任何方式加载一个或多个特定的片从分析和nifti格式?我知道从nii中选择所需的切片很简单。img加载后,但我想避免内存使用与完整的4D, 5D,tsc加载。

感谢您分享这项工作Jimmy

吉米沈

你好迈克尔:

首先,我想知道如何将.mg文件重命名为.nii文件。nifti支金宝app持两个扩展,但是对于.img扩展,您需要在.dr文件中单独保存标题。所以人们就没有办法“......将.img文件重命名为.nii文件......”就像你说的那样。

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

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

谢谢,
吉米

迈克尔Zeineh

嗨,弗朗西斯卡,吉米,

有趣的,我遇到了micricro的同样的问题。我发现了一个解决方法。如果使用Mricro,可以将ROI保存为单独的分析标题(而不是嵌入式标题),然后它将与Mricro打开。但是,这仍然无法与Jimmy的工具开放。但是,如果将.mg文件重命名为.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的意思是左/右。

When you use "load_nii.m", it will do all the proper flipping and rotation according to the affine matrix in the header, and the img will always be in RAS orientation (i.e. x: L->R, y: P->A, z: I->S). In your particular case, instead of use [32 32 23], you should use [33 32 23], since x axis is flipped, i.e. 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。现在我知道这些包的工作原理,如果我想要,我可以自己缩放体素强度。抱歉奇妙的问题,谢谢你的好工具!- 威西

魏刘

你好吉米,

当阅读nifti文件时,我发现体素灰度值与其他工具不同。我所做的是:
- '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

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

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

Felipe Salinas.

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

吉米沈

嗨弗朗西斯卡:

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

似乎“lCC_19850624TRTN_2x2x2_b1000_a_fa。nii”损坏。你试过在mrmicro下成功打开它吗?如果是的话,请上传这个文件,让我看看。

此外,从您发布的错误消息,似乎您正在使用我的工具的一个非常旧版本。我注意到了显示错误的行号。但是,我仍然认为错误是由损坏的图像引起的。

请告诉我,
吉米

弗朗西斯卡

亲爱的吉米,

我只是一个初学者与所有这些“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时,它不支持。金宝app当hdr.dime.datatype = 64&hdr.dime.bitpix = 128时,它可以工作。

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

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

因此,如果您必须使用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)可以在分析格式中打开/保存图像。在使用MATLAB脚本的某些处理之后,我正在尝试保存MRI映像,以分析格式并使用imagej查看它。
我试过你的例子,效果很好。然而,我仍然不清楚为什么ImageJ不能读取输出文件。使用datatype=64, ImageJ可以读取文件,但这不是正确的数据类型,而且整个图像有正弦调制。
谢谢你!
Wen-Tung

吉米沈

嗨Wen-Tung:

首先,谢谢你的评分。

您的脚本是正确的,但我没有收到任何错误消息。你说“......试图使用imagej,......”读取test.img。这是一个错字吗?

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
img1 =兰德(3)
IMG2 =兰特(3,3)
MyMat =复杂(IMG1,IMG2)
数据类型= 32;
Ana = make_ana(mymat,[],[],数据类型);
save_untouch_nii (ana, C: \ \测试数据);
安娜= load_untouch_nii (C: \ \测试数据)
nii = load_nii (C: \ \测试数据)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

在测试上面的脚本时,您是否收到错误消息?

吉米

文桐王

嗨,吉米:
我试图保存一个复杂的2D矩阵(MRI图像)分析格式使用您的脚本:
数据类型= 32;
安娜= make_ans (myMat,[][],数据类型);
save_untouch_nii (ana, C: \ \测试数据);
尝试使用imagej读取test.img时,它给出了错误消息“不支持数据类型32”。金宝app
是因为我没有正确使用脚本吗?
谢谢你!
Wen-Tung

吉米沈

你好,玛尔塔:

你是如何创建NIfTI文件?下面是是可再现的一个例子:

nii = make_nii兰德(91109、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大小”是体素的宽度,高度和深度。

由于分析和NIFI图像都应该对图像中所有体素具有相同的体素大小,因此最大和最小尺寸应该是相同的。

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

请随意提问,

吉米

Prateep Mukherjee.

你好吉米,

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

同样,使用这个工具,我们能求出一个像素到原点的距离吗?请在这方面给予一些提示。

我现在使用的图片是“avg152T1_RL_nifti”。nii”和“avg152T1_LR_nifti。nii”http://nifti.nimh.nih.gov/nimhi-1/data.

谢谢,
Prateep。

吉米沈

嗨,克里斯:

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

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

吉米

吉米沈

嗨Pieter:

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

Jiimmy

Pieter Vandemaele

你好吉米,

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

Pieter

Pieter Vandemaele

你好吉米,

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

当我使用load_nii_hdr加载4-d nifti文件标头时,使用load_nii将其与标题与标题进行比较时,我得到了不同的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 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 0]

我发现了一个错误或者我的头脑有一个错误吗?

Pieter

克里斯那首

嗨,吉米

当使用单一格式的数据时,view_nii似乎有一个问题。当我切换到“interp off”,并点击其中一个面板移动十字线,其他面板得到空白,我看到“警告:CData必须是双或uint8..”在我的matlab提示。我可以通过做一些像这样的事情来解决这个问题:

nii.img =双(nii.img);

到目前为止没有其他问题,非常感谢这个不错的软件!

克丽丝

克里斯那首

嗨,吉米

我有一个关于许可证的问题。在MATLAB前端说,这是BSD许可证,也是如此你LICENSE.TXT。然而,一些文件(包括load_nii.m和save_nii.m)包含线

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

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

克丽丝

吉米沈

嗨,麦迪:

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

1.加载nii文件;
2.找到未使用的强度级别。如果没有,请添加另一个级别;
3.求连续切片中圆和圆的索引;
4.用你在第二步中选择的价值标记它们;
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原点而不是任何转换。

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

吉米

妮可

你好吉米,

很抱歉重复我的问题,但是AC origin的条目我还是不清楚,主要是因为我不知道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是我所有程序的核心部分,并且得到了很好的支持。金宝app谢谢。

西蒙罗宾逊

Marianna Jakab.

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

下NIfTI网站提供了两个示例数据集的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

斯特凡Haufe

艾瑟夫巴德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.这是非常奇怪的是,你有 “[-2 -2 -2 0 0]” 为 “nii_002.hdr.hist.originator”。我需要为了看两个“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.Original.hdr.hist中的始发者是[256 0 0 0 0],而在NII_002.hdr.hist中是[-2 -2 -2 0 0]。

斯特拉郑

亲爱的大家:

在使用这个工具箱的过程中,我发现了以下问题。
数据: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被转换为*。错误信息如下所示

MRI_CONVER。/ orig/001.img ./ orig/001.mgz.
从./ orig/001.img ...
信息:阅读作为双文件nifti
nifti1read():未知的空间单元0英寸/ orig/001.hdr

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

最好的问候,
斯特拉,

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

斯特拉郑

这是我用来分析图像读写的最好的工具。非常感谢您的贡献和分享。

ning cao.

(可能的)错误报告:

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

我只是想报告一个可能的bug在20070426版本。

当使用view_nii查看4D图像时,“值在十字准线”和“值在光标”总是显示第一个3D体积的值。

view_nii。m L3036,代码'imgvalue = double(img(sag,cor,axi));'使imgvalue始终是第一个3D体积的值。

阿巴斯就

当您在FSL处理时,在Matlabe Especillay中查看Nifti格式文件的一个很好的工具箱,并且您将在Matlab中解释
谢谢

杰夫阿

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

r黄

你好吉米,

您的软件非常有用。非常感谢您的优惠。

请您说明(1)如何将2或3张图像叠加在一起,(2)如何选择不同的阈值?

谢谢提前

罗庄

克雷格·汉密尔顿

非常有用,做得好。如何支持复杂数据类型金宝app?

吉米沈

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”的情况下,它将将图像数据转换为“双”。我正在将此文件更新为Matlab中央文件Exchange,并且Nifti_20060307将很快出现。

再次感谢您的宝贵意见,

吉米

——原始邮件

你好吉米,

谢谢你回复我。遗憾的是,在这种情况下,别的东西一定是错误的,因为MATLAB中的图像只有值0或1,而在FSLVIEW或SPM中观看的图像具有零和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.003922)我可以使用e.g.来自FSL的SPM5或AVD。

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

GED。

吉米沈

嗨亨利:

这是一个高级特性,它已经包含在工具箱中。

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

1.使用“ana = load_nii(ana.img)”来加载你的分析图像到“ana”结构,并确保变量“ana.img”。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);”相反。

如果您可以将底板分析的图像绘制您的阈值图像,请告诉我。

吉米

——原始邮件
我一直在使用Nifti MATLAB工具箱最近,想知道是否有可能使限图像的叠加到分析的图像。实际上这将意味着,阈值化的图像的所有值为0的像素应该是透明的,使得底层功能图像可以看出。

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

你的真诚,

亨利·莱科克

BiomeDizinische NMR Forschungs GmbH

Am Max-PlanckInstitutfürBiophsysikalischeChemie

点Fassberg 11

37077年哥廷根

德国

杨直

吉米沈

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

梅艳芳d

当我将nii文件输出为int时,这个程序工作得很好,但当我将nii文件输出为unint时,图像被扭曲了。

MATLAB版本兼容性
用r11.1创建
兼容任何释放
平台兼容性
窗户 macOS Linux.

社区寻宝

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!