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);
另請參見