Skip to content
Snippets Groups Projects
Commit 71db907f authored by Wolfgang Ludwig's avatar Wolfgang Ludwig
Browse files

missing function for pairmatch - sample shifts

parent 76f4053e
No related branches found
No related tags found
No related merge requests found
function [shifts_lab, shifts_sam, abspos, relpos] = gtMatchGetSampleShifts(parameters, omega_values, varargin)
% function [shifts_lab, shifts_sam, abspos, relpos] = gtMatchGetSampleShifts(parameters, omega_values)
%
conf.display = false;
conf.offset_pos = 0;
conf = parse_pv_pairs(conf, varargin);
if (~exist('parameters', 'var') || isempty(parameters))
parameters=gtLoadParameters;
end
tot_proj = 2 * parameters.acq.nproj;
omstep = 360 / tot_proj;
refon = parameters.acq.refon;
ref_grps = tot_proj/refon;
filename = sprintf('%s/0_rawdata/Orig/%s%04d.edf', parameters.acq.dir, parameters.acq.name, conf.offset_pos);
info = edf_info(filename);
offset = [info.motor.samtx, info.motor.samty, info.motor.samtz];
shifts_lab = zeros(tot_proj, 3);
shifts_sam = zeros(tot_proj, 3);
refpos = zeros(ref_grps, 3);
rotcomp = gtMathsRotationMatrixComp(parameters.labgeo.rotdir, 'row');
for ii = 1 : ref_grps
filename = sprintf('%s/0_rawdata/Orig/%s%04d.edf', parameters.acq.dir, parameters.acq.name, (ii-1) * refon);
info = edf_info(filename);
abspos(ii, :) = [info.motor.samtx, info.motor.samty, info.motor.samtz];
relpos(ii, :) = abspos(ii, :) - offset;
for jj = 1 : refon
im_num = (ii - 1) * refon + jj - 1;
omega = omstep * im_num;
rottens = gtMathsRotationTensor(omega, rotcomp);
shifts_lab(im_num + 1, :) = relpos(ii, :) * rottens * eye(3);
shifts_sam(im_num + 1, :) = relpos(ii, :);
end
end
% handle 360 degree image after scan
filename = sprintf('%s/0_rawdata/Orig/%s%04d.edf', parameters.acq.dir, parameters.acq.name, tot_proj);
info = edf_info(filename);
abspos(ref_grps + 1, :) = [info.motor.samtx, info.motor.samty, info.motor.samtz];
relpos(ref_grps + 1, :) = abspos(ref_grps + 1, :) - offset;
shifts_lab(tot_proj + 1, :) = relpos(ref_grps + 1, :) * eye(3);
shifts_sam(tot_proj + 1, :) = relpos(ref_grps + 1, :);
if (exist('omega_values', 'var') & ~isempty(omega_values))
% set NaN entries in omega to 0;
nans = isnan(omega_values);
omega_values(nans) = 0;
% transform into image_numbers
im_num = round(omega_values / omstep) + 1;
shifts_lab = shifts_lab(im_num, :);
shifts_sam = shifts_sam(im_num, :);
refgrp = floor(im_num / refon) + 1;
abspos = abspos(refgrp, :);
relpos = relpos(refgrp, :);
end
if conf.display
figure;
plot(shifts_lab(:, 1)', shifts_lab(:, 2)', '*')
end
end
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment