SPM/编程简介
外观
< SPM
![]() |
本页旨在提供一个快速入门指南,用于使用 SPM 作为库编写您自己的 MATLAB 脚本和函数。SPM 编程可能意味着简单地 编写批处理脚本 以自动化常见的流程,编写简短的辅助脚本或函数来完成有用的任务,编写您自己的 SPM 扩展,甚至修改您本地安装的 SPM。
MATLAB 是一种由 MathWorks 开发的编程语言。
网上有很多 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_vol
spm_write_plane
nifti
(@nifti/Contents
,@nifti/create
)file_array
(@file_array/Contents
)
spm_get_space
- 获取体素世界映射矩阵(刚性或仿射变换,使用齐次坐标)spm_imatrix
- 将上述矩阵转换为参数化形式spm_matrix
- 将参数向量转换为仿射矩阵spm_check_orientations
spm_realign
spm_coreg
(spm_reslice
)spm_affreg
spm_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_defaults
spm_get_defaults
spm_select
spm_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);
另请参见