SPM/编程简介
外观
< SPM
SPM 华夏公益教科书已移至 https://www.fil.ion.ucl.ac.uk/spm/docs/ |
本页旨在提供一个快速入门指南,用于使用 SPM 作为库编写您自己的 MATLAB 脚本和函数。SPM 编程可能意味着简单地 编写批处理脚本 以自动化常见的流程,编写简短的辅助脚本或函数来完成有用的任务,编写您自己的 SPM 扩展,甚至修改您本地安装的 SPM。
MATLAB 是一种由 MathWorks 开发的编程语言。
- MATLAB 和 MathWorks 在维基百科上的页面
- 华夏公益教科书上的 MATLAB
网上有很多 MATLAB 教程
也有一些有用的书籍
MATLAB 课程
SPM 在源文件的头文件中提供了丰富的开发者文档。要查看函数的文档,请打开相应的源文件或从 MATLAB 命令行调用 help function。请确保 SPM 文件夹位于 MATLAB 的搜索路径中。
spm_vol- 头文件信息spm_read_vols- 用于读取整个体积(另请参阅:spm_vol)spm_slice_vol- 用于任意平面spm_sample_vol- 任何体素spm_get_data(spm_sample_vol) - 来自多个体积的任何体素spm_bsplins(spm_bsplinc) - 注意spm_slice_vol和spm_sample_vol提供多项式或 sinc 插值;这些函数提供spm_reslice中使用的 b 样条插值
spm_write_vol(spm_vol)spm_create_volspm_write_plane
nifti(@nifti/Contents,@nifti/create)file_array(@file_array/Contents)
spm_get_space- 获取体素世界映射矩阵(刚性或仿射变换,使用齐次坐标)spm_imatrix- 将上述矩阵转换为参数化形式spm_matrix- 将参数向量转换为仿射矩阵spm_check_orientations
spm_realignspm_coreg(spm_reslice)spm_affregspm_reslice- 需要参考图像;有关重新切片到指定几何形状的信息,请参阅以下内容reorient(resize_img) - 可从 John's Gems 2 和 3 中获得
spm_preproc(spm_config_preproc,spm_prep2sn,spm_preproc_write) - SPM5 的统一分割和归一化spm_normalise- SPM5 之前的旧版非统一空间归一化spm_segment- SPM5 之前的旧版非统一组织分割spm_smooth
spm_imcalc- 对体积执行任意计算(低级函数)spm_imcalc_ui-spm_imcalc的高级便利包装器
spm_ancova(spm_reml_ancova) - SPM 本身没有使用,但通常对于脚本编写或教育目的很有用
spm_check_registration(spm_image,spm_orthviews) - 无处不在的三个正交视图slover- 贯穿图像的切片,阈值或原始统计数据的叠加;另请参阅 slice_overlayspm_mip_ui(spm_mip) - 最大强度投影或玻璃脑图像
spm_defaultsspm_get_defaults
spm_selectspm_jobman
这是一个更简单(但更占内存)的旧版Gem。有关逐平面读取和写入的示例,请参见SPM8 版本的 gem。
fnm = spm_select(1, 'image'); [pth, bnm, ext] = spm_fileparts(fnm); VI = spm_vol(fnm); VO = VI; % copy input info for output image VO.fname = fullfile(pth, [bnm '_zn' ext]); img = spm_read_vols(VI); img(isnan(img)) = 0; % use ~isfinite instead of isnan to replace +/-inf with zero spm_write_vol(VO,img);
另请参见