Submitted by insular on Sat, 12/25/2010 - 20:42
老师,您好
用Rest做fC,我遇到坐标问题,得出的结果图像与原始图像以及mask不一致(x坐标上有位移,并且x轴上的起始坐标不一致)。
如下:
restFMRI_1 是处理好的fmri数据。我用rest做ROI Center(mm)=(-5.500000e+00, -31, 1.150000e+01); Radius=1.50 mm, 与全脑的功能连接
mask 全脑的mask
FCMaps_result 得到的结果。
可以看到,restFMRI_1 和 mask 的坐标以及原点是一致的,可是得到的FCMaps在x坐标上有位移,并且x轴上的起始坐标不一致。
这是怎么导致的,有没有办法解决。
另外,对于我定义的ROI,Rest在计算时,会不会四舍五入,把ROI变成 (-6,-31,12); R=2mm ???
Attachment | Size |
---|---|
restFMRI_1.hdr | 348 bytes |
restFMRI_1.img | 182.6 KB |
mask.hdr | 348 bytes |
mask.img | 91.3 KB |
FCMaps_result.hdr | 348 bytes |
FCMaps_result.img | 365.2 KB |
Submitted by YAN Chao-Gan on Mon, 12/27/2010 - 21:26 Permalink
Re
你好!
1. 你的数据格式比较特殊,体素大小为1.5,X方向一共是42个体素,并且为LPI方式存储的。REST在读写文件时,会强制转换为RPI方式,这样才能保证所有MASK和数据对应。你的1.5大小的体素在转换L/R时会有些误差。我用Jimmy的NIfTI tool中的flip_lr.m(http://www.rotman-baycrest.on.ca/~jimmy/NIFTI/)验证了一下,也会遇到这种情况下要偏1个体素。他们的程序中有tolerance定义,我想这应该是tolerance接受范围之内的。在REST中的传统精度,即3x3x3体素的61x73x61大小,则不会遇到这个问题。
2. REST要根据你给出的坐标去计算对应的voxel index,计算出voxel index之后,会做四舍五入。
Submitted by insular on Mon, 12/27/2010 - 22:32 Permalink
谢谢老师。那有什么办法解决这个问题呢? 我现在得到很多结果
谢谢老师。那有什么办法解决这个问题呢?
我现在得到很多结果图,既然只是坐标上的改变,结果本身应该不会有什么改变。
现在需要做的只是把这个结果overlay到结构像上,因此只需要改变这些结构的x坐标,就可以匹配了吧。
我需要怎么做,才能改变这些图像的坐标呢?
Submitted by YAN Chao-Gan on Tue, 12/28/2010 - 15:37 Permalink
Re
可以选以下方式中的一种:
1. 你的数据是用FSL处理的吧?在FSL中保存为RPI格式。
2. 不要用1.5这样的体素大小。
3. 对处理好的功能连接结果用一些语句改为LPI格式,但注意,不能用REST Slice Viewer查看结果。用MRIcroN去查看就可以(MRIcroN有些自己的插值算法)
[Outdata,Header]= rest_ReadNiftiImage('FCmap_T_xxx.img');
Outdata = flipdim(Outdata,1);
Header.mat(1,:) = -1*Header.mat(1,:);
rest_WriteNiftiImage(Outdata,Header,'LPI_FCmap_T_xxx.img')
Submitted by insular on Tue, 12/28/2010 - 18:25 Permalink
谢谢老师。
谢谢老师。