今天想着写第一个所谓“技术贴”,因为上周有个NYU的中国留学生读了在NeuroImage上的文章,所以写信来问起如何把NIFTI格式的影像数据读到MATLAB中去,进行相关操作,然后再把结果写出到新的NIFTI格式的数据中。这里整理一下:其实目前看来几大影像学处理工具包都已经内建了与MATLAB的接口程序,只是因为大家没注意到或者需要一些自己的调整,都觉得非得自己写些代码来做这个事,其实不然。我会陆续以例子的形式给大家介绍如何使用这些接口程序:FSL、AFNI、FreeSurfer和SPM。今天贴FSL:
1、首先,保证你的机器已经安装了FSL;
2、其次,找到FSL安装目录下的etc目录,看到了吧,有一个叫matlab的目录在那,那就是接口程序;
3、然而,这个并不能直接拿来用,请用附件中的程序来替换这些文件,当然你感兴趣,可以看看我做了哪些调整,主要是和bash脚本设定有关的;
4、现在,打开MATLAB,设定PATH以包含刚才的etc/matlab目录;
5、最后,试试下面的代码:读入一个3D磁共振结构图像,然后把轴位中间的一副置零,再写出到一个新的3D磁共振结构图。
------------------Codes Start Here-------------------
[nii_data, dims] = avw_read('mri_3d.nii.gz'); %返回3D数组nii_data和数据的维数dims
nii_data(:,:,64) = 0; %中间轴位层置零
avw_save(nii_data, 'mri_3d_modified.nii.gz', 'i', [1 1 1 1]); %写出数据,后面两个参数是数据类型和各维resolution
------------------Codes End Here---------------------
完!
附件:FSL的MATLAB接口程序
https://blog.sciencenet.cn/blog-46395-305190.html
上一篇:
千人脑功能连接项目下一篇:
Task-positive, Task-negative. What about Task-ZERO?