diff --git a/2_difspot/gtSetupSegmentation.m b/2_difspot/gtSetupSegmentation.m index 45dda432a840f33f168762bce24c03a51e0a248d..699efe2f87aebe5faa1c0dc49a14f6ee68a793b3 100644 --- a/2_difspot/gtSetupSegmentation.m +++ b/2_difspot/gtSetupSegmentation.m @@ -50,13 +50,12 @@ function gtSetupSegmentation() parameters = []; load('parameters.mat'); +parameters_name = fullfile(parameters.acq.dir, 'parameters.mat'); disp(' ') gtDBConnect(); disp(' ') -parameters_name = fullfile(parameters.acq.dir, 'parameters.mat'); - % get the seg.bbox if it exists, or guess it from acq.bb if ~isfield(parameters.seg, 'bbox') || isempty(parameters.seg.bbox) disp('Segmentation bounding box is not defined. Setting it equal to') @@ -64,6 +63,10 @@ if ~isfield(parameters.seg, 'bbox') || isempty(parameters.seg.bbox) parameters.seg.bbox = parameters.acq.bb; end +% Let's check every field is in, and in case let's update it! +parameters.('seg') = gtCheckParameters(parameters.('seg'), gtSegDefaultParameters()); +save(parameters_name, 'parameters') + % set default for subtraction of median background parameters.seg.background_subtract = true; diff --git a/2_difspot/gtSetupSegmentation_doublethr.m b/2_difspot/gtSetupSegmentation_doublethr.m index d20ad41f9da6d8e06302416c6547e464384accf4..a5f04bda68e0794c7cddaa6c22cb4d46a37c3ee5 100644 --- a/2_difspot/gtSetupSegmentation_doublethr.m +++ b/2_difspot/gtSetupSegmentation_doublethr.m @@ -99,10 +99,16 @@ disp('! Note that what is displayed here is 2D thresholding, and the real routin disp(' ') pause(1) -parameters=[]; -load('parameters.mat'); +% Needed to avoid "static workspace assignment" error +parameters = load('parameters.mat'); +parameters = parameters.parameters; parameters_name = fullfile(parameters.acq.dir,'parameters.mat'); +% Let's check every field is in, and in case let's update it! +parameters.('seg') = gtCheckParameters(parameters.('seg'), gtSegDefaultParameters()); +save(parameters_name, 'parameters') + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % recompile binaries - not often needed. But more often than it should be... %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/zUtil_Indexter/gtSetupIndexing.m b/zUtil_Indexter/gtSetupIndexing.m index 5ecd298531c1dfa101059dfc7dddce19ed1f9313..805e498555fc2bebb29cbc387f576dd38d8db0de 100644 --- a/zUtil_Indexter/gtSetupIndexing.m +++ b/zUtil_Indexter/gtSetupIndexing.m @@ -6,6 +6,11 @@ function gtSetupIndexing() parameters = []; load('parameters.mat'); +% Let's check every field is in, and in case let's update it! +parameters.('index') = gtCheckParameters(parameters.('index'), gtIndexDefaultParameters()); +parameters.('index').('strategy') = gtCheckParameters(parameters.('index').('strategy'), gtIndexDefaultStrategy()); + +save('parameters.mat', 'parameters'); % Use default parameters or review/edit them? check = inputwdefault('Use existing parameters for phase #1 for gtINDEXTER? [y/n]', 'y'); diff --git a/zUtil_Parameters/gtCheckParameters.m b/zUtil_Parameters/gtCheckParameters.m index fc34647cbbf192dd0f9c3366140274a23b3295a9..be4b50bb6b4b39e6223ba6412fb49386532d3280 100644 --- a/zUtil_Parameters/gtCheckParameters.m +++ b/zUtil_Parameters/gtCheckParameters.m @@ -8,7 +8,20 @@ function param_section = gtCheckParameters(param_section, default_section) for ii = 1:length(missing_names) name = missing_names{ii}; - warning('gtCheckParameters:missin_param', 'Parameter "%s" missing.', name) + warning('gtCheckParameters:missin_param', ... + 'Parameter "%s" missing.', name) param_section.(name) = default_section.(name); end + + % now let's see if some parameters are just useless + sec_names = fieldnames(param_section); + checks = ~isfield(default_names, param_section); + exceding = sec_names(checks); + + for ii = 1:length(exceding) + name = exceding{ii}; + warning('gtCheckParameters:unused_param', ... + 'Parameter "%s" is not defined in the defaults: it may be useless', ... + name) + end end