User Tools

Site Tools


vmr.applytrf
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


vmr.applytrf [2010/06/22 19:32] (current) – created jochen
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>
 +
  
vmr.applytrf.txt · Last modified: 2010/06/22 19:32 by jochen