📄 initialalignment.m
字号:
function ia = initialalignment(vmr, fmr)
% initialalignment - perform the automatic IA
%
% FORMAT: ia = initialalignment(vmr, fmr)
%
% Input fields:
%
% vmr VMR object
% fmr FMR object
%
% Output fields:
%
% ia TRF object with IA matrix
% Version: v0.7a
% Build: 7081009
% Date: Aug-10 2007, 9:15 AM CEST
% Author: Jochen Weber, Brain Innovation, B.V., Maastricht, NL
% URL/Info: http://wiki.brainvoyager.com/BVQXtools
% argument check
if nargin ~= 2 || ...
~isBVQXfile(vmr, 'vmr') || ...
numel(vmr) ~= 1 || ...
~isBVQXfile(fmr, 'fmr') || ...
numel(fmr) ~= 1
error( ...
'BVQXtools:BadArgument', ...
'Bad or missing argument.' ...
);
end
% generate ia
ia = bless(BVQXfile('new:trf'), 1);
% get coordinate frames
fmrc = fmr.CoordinateFrame();
vmrc = vmr.CoordinateFrame();
% coordinate systems
fmrs = fmr.CoordinateSystem;
vmrs = vmr.CoordinateSystem;
if fmrs ~= 1
% TODO
end
if vmrs ~= 1
% TODO
end
% convention
fmrrad = strcmpi(fmr.RadiologicalConvention(1), 'y');
if fmrrad == (vmr.Convention ~= 0)
% TODO
end
% compute IA matrix
tfm = inv(vmrc.Trans) * fmrc.Trans;
tfm(4, :) = [0, 0, 0, 1];
% other interpretation of systems
tfm(:, 3) = -tfm(:, 3);
% some other settings
ia.CoordinateSystem = vmrc;
ia.NSlicesFMRVMR = fmr.NrOfSlices;
ia.SlThickFMRVMR = fmr.SliceThickness;
ia.SlGapFMRVMR = fmr.GapThickness;
ia.CreateFMR3DMethod = 3;
ia.AlignmentStep = 1;
% vmr transformations applied
if vmr.NrOfPastSpatialTransformations > 0
else
ia.ExtraVMRTransf = 0;
ia.ExtraVMRTransfValues = eye(4);
end
ia.SourceFile = fmr.FilenameOnDisk;
ia.TargetFile = vmr.FilenameOnDisk;
% store transformation matrix
ia.TFMatrix = tfm;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -