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

more consistent handling of minimum spot size

parent 78cb64bd
No related branches found
No related tags found
No related merge requests found
......@@ -4,10 +4,33 @@ function [shifts_lab, shifts_sam, abspos, relpos] = gtMatchGetSampleShifts(param
conf = struct('display', false, 'offset_pos', 0, 'det_index', 1);
conf = parse_pv_pairs(conf, varargin);
tot_proj = gtAcqTotNumberOfImages(parameters, conf.det_index);
omstep = gtAcqGetOmegaStep(parameters, conf.det_index);
refon = parameters.acq.refon;
ref_grps = tot_proj / refon;
acq_dir = parameters.acq.dir;
acq_name = parameters.acq.name;
base_dir = fullfile(acq_dir, '0_rawdata', 'Orig');
if (~exist('parameters', 'var') || isempty(parameters))
parameters = gtLoadParameters();
end
if isfield(parameters.acq,'shifts_sam')
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 = parameters.acq.shifts_lab(im_num, :);
shifts_sam = parameters.acq.shifts_sam(im_num, :);
else
shifts_lab = parameters.acq.shifts_lab;
shifts_sam = parameters.acq.shifts_sam;
end
return
end
tot_proj = gtAcqTotNumberOfImages(parameters, conf.det_index);
omstep = gtAcqGetOmegaStep(parameters, conf.det_index);
refon = parameters.acq.refon;
......
......@@ -13,7 +13,11 @@ function [candidateIDs, cands_info] = gtFwdSimFindCandidates(spot_props, gr, spo
if (~exist('det_index', 'var') || isempty(det_ind))
det_ind = 1;
end
if isfield(parameters.fsim, 'allowed_dist')
allowed_dist = parameters.fsim.allowed_dist;
else
allowed_dist = 5;
end
spots_info = segmentedSpots(det_ind);
uvw = gr.allblobs(det_ind).detector.uvw(spot_index, :);
......@@ -23,8 +27,8 @@ function [candidateIDs, cands_info] = gtFwdSimFindCandidates(spot_props, gr, spo
dist_v_pix = abs(spots_info.BoundingBoxYorigin + spots_info.BoundingBoxYsize / 2 - uvw(2));
dist_w_im = abs(spots_info.CentroidImage - uvw(3));
dist_u_ok = dist_u_pix < (spots_info.BoundingBoxXsize - spot_props.XsizeAvg / 2) / 2;
dist_v_ok = dist_v_pix < (spots_info.BoundingBoxYsize - spot_props.YsizeAvg / 2) / 2;
dist_u_ok = dist_u_pix < max(allowed_dist, (spots_info.BoundingBoxXsize + spot_props.XsizeMin / 2) / 2);
dist_v_ok = dist_v_pix < max(allowed_dist, (spots_info.BoundingBoxYsize + spot_props.YsizeMin / 2) / 2);
dist_w_ok = dist_w_im <= spot_props.max_w_offset_im;
......
......@@ -31,16 +31,17 @@ function spotsProps = gtFwdSimGetDiffspotsCommonProperties(grain, parameters, de
spotsProps.Ysize = grain.stat.bbysmean; % average Y Size of difspots
% define theshold values which will be used during the database search later
% - limit to 5 pixels minimum width
spotsProps.XsizeMin = max(5, spotsProps.Xsize - fsim.bbsize_factor * grain.stat.bbxsstd);
segMinX = parameters.seg.minblobsize(1);
segMinY = parameters.seg.minblobsize(2);
spotsProps.XsizeMin = max(segMinX, spotsProps.Xsize - fsim.bbsize_factor * grain.stat.bbxsstd);
spotsProps.XsizeMax = spotsProps.Xsize + fsim.bbsize_factor * grain.stat.bbxsstd;
spotsProps.YsizeMin = max(5, spotsProps.Ysize - fsim.bbsize_factor * grain.stat.bbysstd);
spotsProps.YsizeMin = max(segMinY, spotsProps.Ysize - fsim.bbsize_factor * grain.stat.bbysstd);
spotsProps.YsizeMax = spotsProps.Ysize + fsim.bbsize_factor * grain.stat.bbysstd;
% allow for a lateral deviation of spot postions based on grain orientation statics
% dif_props.Offset = fsim.Rdist_factor * gr.stat.Rdiststd * norm(detrefpos_pix)
% !!! detrefpos is not necessarily the distance; depends on definition by user
spotsProps.Offset = fsim.Rdist_factor * deg2rad(grain.stat.dangstd) * norm(detrefpos_pix);
spotsProps.Offset = fsim.Rdist_factor * deg2rad(grain.stat.dangstd) * norm(detrefpos_pix)
grainBBox = [max(grain.bbxs), max(grain.bbys)];
% take the biggest spot and add a relative extra margin (multiplicative factor oversize)
......
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