我需要将多个.nii文件转换成一个. ni.gz文件。在Matlab中,我使用了gzip('*. nii '),但它为每个nii文件创建了多个ni.gz文件。如何从许多.nii文件中创建一个组合的nii.gz文件?先谢谢你了
4zcjmb1e1#
如果您将Tools for NIfTI and Analyze Images库下载到/tmp/tools4nifti并从FSL目录中复制两个T1 MNI模板示例,* 例如 *:/tmp$ cp $FSLDIR/data/standard/MNI152_T1_2mm.nii.gz ./copy1.nii.gz/tmp$ cp $FSLDIR/data/standard/MNI152_T1_2mm.nii.gz ./copy2.nii.gz然后你可以使用标准的matlab函数连接二进制数据,并使用库编写结果:
/tmp/tools4nifti
/tmp$ cp $FSLDIR/data/standard/MNI152_T1_2mm.nii.gz ./copy1.nii.gz
/tmp$ cp $FSLDIR/data/standard/MNI152_T1_2mm.nii.gz ./copy2.nii.gz
addpath ( 'tools4nifti' ); % add library NII = load_untouch_nii ( 'copy1.nii.gz' ); % 1st copy im1 = double ( NII.img ); % load binary NII = load_untouch_nii ( 'copy2.nii.gz' ); % 2nd copy im2 = 10000 - double ( NII.img ); % load binary, inverted im = cat ( 4, im1, im2 ); % join along dim 4 NII.hdr.dime.dim = [ length( size(im) ) size(im) ]; % update NIfTI record NII.hdr.dime.dim ( end+1:8 ) = 1; % give 8 dimensions NII.img = im; % put binary data in save_untouch_nii ( NII, 'twocopies.nii.gz' ); % write the file
您可以加载任意数量的im,也可以向cat命令添加任意数量的参数,或者将整个操作放在for循环中。这个库不是我的,但我经常使用它,因为它可以加载.nii.gz文件,而不需要额外的显式(反)压缩命令。
im
cat
.nii.gz
1条答案
按热度按时间4zcjmb1e1#
如果您将Tools for NIfTI and Analyze Images库下载到
/tmp/tools4nifti
并从FSL目录中复制两个T1 MNI模板示例,* 例如 *:/tmp$ cp $FSLDIR/data/standard/MNI152_T1_2mm.nii.gz ./copy1.nii.gz
/tmp$ cp $FSLDIR/data/standard/MNI152_T1_2mm.nii.gz ./copy2.nii.gz
然后你可以使用标准的matlab函数连接二进制数据,并使用库编写结果:
您可以加载任意数量的
im
,也可以向cat
命令添加任意数量的参数,或者将整个操作放在for循环中。这个库不是我的,但我经常使用它,因为它可以加载
.nii.gz
文件,而不需要额外的显式(反)压缩命令。