Skip to content
Snippets Groups Projects
Commit 4a253802 authored by Nicola Vigano's avatar Nicola Vigano
Browse files

6D-reconstruction: small fixes for sample-shift

parent 7f2a1199
No related branches found
No related tags found
No related merge requests found
...@@ -11,32 +11,51 @@ function [shifts_lab, shifts_sam, abspos, relpos] = gtMatchGetSampleShifts(param ...@@ -11,32 +11,51 @@ function [shifts_lab, shifts_sam, abspos, relpos] = gtMatchGetSampleShifts(param
tot_proj = gtAcqTotNumberOfImages(parameters, conf.det_index); tot_proj = gtAcqTotNumberOfImages(parameters, conf.det_index);
omstep = gtGetOmegaStepDeg(parameters, conf.det_index); omstep = gtGetOmegaStepDeg(parameters, conf.det_index);
refon = parameters.acq.refon; refon = parameters.acq.refon;
ref_grps = tot_proj/refon; ref_grps = tot_proj / refon;
filename = sprintf('%s/0_rawdata/Orig/%s%04d.edf', parameters.acq.dir, parameters.acq.name, conf.offset_pos); acq_dir = parameters.acq.dir;
acq_name = parameters.acq.name;
base_dir = fullfile(acq_dir, '0_rawdata', 'Orig');
filename = sprintf('%s/%s%04d.edf', base_dir, acq_name, conf.offset_pos);
info = edf_info(filename); info = edf_info(filename);
offset = [info.motor.samtx, info.motor.samty, info.motor.samtz]; offset = [info.motor.samtx, info.motor.samty, info.motor.samtz];
shifts_lab = zeros(tot_proj, 3); % Let's handle some special case
shifts_sam = zeros(tot_proj, 3); if (~exist(filename, 'file'))
refpos = zeros(ref_grps + 1, 3); if (~exist('omega_values', 'var') || isempty(omega_values))
omega_values = 0;
end
shifts_lab = zeros(numel(omega_values, 3));
shifts_sam = zeros(numel(omega_values, 3));
abspos = zeros(numel(omega_values, 3));
relpos = zeros(numel(omega_values, 3));
return
end
shifts_lab = zeros(tot_proj, 3);
shifts_sam = zeros(tot_proj, 3);
abspos = zeros(ref_grps + 1, 3);
relpos = zeros(ref_grps + 1, 3);
rotcomp = gtMathsRotationMatrixComp(parameters.labgeo.rotdir, 'row'); rotcomp = gtMathsRotationMatrixComp(parameters.labgeo.rotdir, 'row');
for ii = 1 : ref_grps for ii = 1 : ref_grps
filename = sprintf('%s/0_rawdata/Orig/%s%04d.edf', parameters.acq.dir, parameters.acq.name, (ii-1) * refon); filename = sprintf('%s/%s%04d.edf', base_dir, acq_name, (ii-1) * refon);
info = edf_info(filename); info = edf_info(filename);
abspos(ii, :) = [info.motor.samtx, info.motor.samty, info.motor.samtz]; abspos(ii, :) = [info.motor.samtx, info.motor.samty, info.motor.samtz];
relpos(ii, :) = abspos(ii, :) - offset; relpos(ii, :) = abspos(ii, :) - offset;
for jj = 1 : refon for jj = 1 : refon
im_num = (ii - 1) * refon + jj - 1; im_num = (ii - 1) * refon + jj - 1;
omega = omstep * im_num; omega = omstep * im_num;
rottens = gtMathsRotationTensor(omega, rotcomp); rottens = gtMathsRotationTensor(omega, rotcomp);
shifts_lab(im_num + 1, :) = relpos(ii, :) * rottens * eye(3); shifts_lab(im_num + 1, :) = relpos(ii, :) * rottens;
shifts_sam(im_num + 1, :) = relpos(ii, :); shifts_sam(im_num + 1, :) = relpos(ii, :);
end end
end end
% handle 360 degree image after scan % handle 360 degree image after scan
filename = sprintf('%s/0_rawdata/Orig/%s%04d.edf', parameters.acq.dir, parameters.acq.name, tot_proj); filename = sprintf('%s/%s%04d.edf', base_dir, acq_name, tot_proj);
info = edf_info(filename); info = edf_info(filename);
abspos(ref_grps + 1, :) = [info.motor.samtx, info.motor.samty, info.motor.samtz]; abspos(ref_grps + 1, :) = [info.motor.samtx, info.motor.samty, info.motor.samtz];
relpos(ref_grps + 1, :) = abspos(ref_grps + 1, :) - offset; relpos(ref_grps + 1, :) = abspos(ref_grps + 1, :) - offset;
......
...@@ -72,8 +72,8 @@ function proj_geom = gtGeoProjForReconstruction(projvec_sam, omega, vol_center,. ...@@ -72,8 +72,8 @@ function proj_geom = gtGeoProjForReconstruction(projvec_sam, omega, vol_center,.
ones_omega = ones(length(omega), 1); ones_omega = ones(length(omega), 1);
end end
if (~exist('vol_center_shift', 'var')) if (~exist('vol_center_shift', 'var') || isempty(vol_center_shift))
vol_center_shift = zeros(numel(ones_omega), 3); vol_center_shift_rec = zeros(numel(ones_omega), 3);
else else
vol_center_shift_rec = gtGeoSam2Sam(vol_center_shift, samgeo, recgeo, false, false); vol_center_shift_rec = gtGeoSam2Sam(vol_center_shift, samgeo, recgeo, false, false);
end end
......
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