vmr.applytrf
Table of Contents
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')')
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
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!):
- 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;
- using two VMRs, coregister them, then transform the first:
- 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});
vmr.applytrf.txt · Last modified: 2010/06/22 19:32 by jochen