This shows you the differences between two versions of the page.
— |
vmr.applytrf [2010/06/22 21:32] (current) jochen created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== vmr.ApplyTRF ====== | ||
+ | |||
+ | ===== Motivation ===== | ||
+ | The main motivation for using this function is the ability to flexibly script spatial VMR transformation in Matlab. | ||
+ | |||
+ | ===== Method reference ('vmr.Help('ApplyTRF')') ===== | ||
+ | <file> VMR::ApplyTRF - apply transformation to VMR | ||
+ | |||
+ | FORMAT: newvmr = vmr.ApplyTRF(trf [, opts]) | ||
+ | |||
+ | Input fields: | ||
+ | |||
+ | trf TRF object | ||
+ | opts struct with optional fields | ||
+ | .asdouble store output as double (default: false) | ||
+ | .inverse apply inverse transformation (default: false) | ||
+ | .method interpolation, see flexinterpn_method (default: 'linear') | ||
+ | |||
+ | Output fields: | ||
+ | |||
+ | newvmr transformed VMR</file> | ||
+ | |||
+ | ===== Usage examples ===== | ||
+ | * using a TRF that was created in BrainVoyager (and instead of the file selector in the first two lines, this can be scripted!): <code matlab vmr_applytrf_bvtrf.m>%load VMR and TRF | ||
+ | vmr = xff('*.vmr'); | ||
+ | trf = xff('*.trf'); | ||
+ | |||
+ | % apply transformation with cubic interpolation | ||
+ | trfvmr = vmr.ApplyTRF(trf, struct('method', 'cubic')); | ||
+ | trfvmr.SaveAs; | ||
+ | |||
+ | % clear objects | ||
+ | vmr.ClearObject; | ||
+ | trf.ClearObject; | ||
+ | trfvmr.ClearObject;</code> | ||
+ | * using two VMRs, coregister them, then transform the first: <code matlab vmr_applytrf_coreg.m>% load two VMRs | ||
+ | vmr1 = xff(sourcevmr); | ||
+ | vmr2 = xff(targetvmr); | ||
+ | |||
+ | % run coregistration (requires SPM5 or SPM8 on the path!!) | ||
+ | % vmr2 is the target space (stationary), vmr1 the one to be resampled! | ||
+ | trf = vmrspmcoreg(vmr1, vmr2) | ||
+ | |||
+ | % resample vmr1 using sinc (lanczos3) interpolation | ||
+ | vmr1_in_vmr2_space = vmr1.ApplyTRF(trf, struct('method', 'lanczos3')); | ||
+ | |||
+ | % save TRF and VMR | ||
+ | [sourcepath, sourcefile] = fileparts(sourcevmr); | ||
+ | if isempty(sourcepath) | ||
+ | sourcepath = '.'; | ||
+ | end | ||
+ | [nullpath, targetfile] = fileparts(targetvmr); | ||
+ | trf.SaveAs(sprintf('%s/%s-TO-%s.trf', sourcepath, sourcefile, targetfile)); | ||
+ | vmr1_in_vmr2_space.SaveAs(sprintf('%s/%s-TO-%s.vmr', sourcepath, sourcefile, targetfile)); | ||
+ | |||
+ | % clear objects | ||
+ | clearxffobjects({vmr1, vmr2, trf, vmr1_in_vmr2_space});</code> | ||
+ | |||