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

Fixed a possible bug with detector norm names

parent c9af0e31
No related branches found
No related tags found
No related merge requests found
......@@ -18,15 +18,21 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector
verbose = false;
detector_norm = 'KL'; % Possibilities are: {'KL'} | 'l2'
tv_norm = 'l12'; % Possibilities are: {'l12'} | 'l1' | 'ln'
tv_strategy = 'groups'; % Possibilities are: {'groups'} | 'volume'
detector_norm = Gt6DBlobReconstructor.possible_detector_norms{1};
tv_norm = Gt6DBlobReconstructor.possible_tv_norms{1};
tv_strategy = Gt6DBlobReconstructor.possible_tv_strategies{1};
orientation_groups = [];
algo_ops_c_functions = true;
end
properties (Constant)
possible_detector_norms = {'l2', 'kl'};
possible_tv_norms = {'l12', 'l1', 'ln'};
possible_tv_strategies = {'groups', 'volume'};
end
methods (Access = public)
function self = Gt6DBlobReconstructor(volumes, blobs, varargin)
fprintf('Initializing BLOB Recontruction:\n - Setup..');
......@@ -42,25 +48,21 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector
end
self = self@Gt6DVolumeToBlobProjector(vols_size, proj_size, blobs_depths, varargin{:});
possible_tv_norms = {'l12', 'l1', 'ln'};
possible_tv_strategies = {'groups', 'volume'};
possible_detector_norms = {'KL', 'l2'};
% Let's complain about wrong options
if (~ismember(self.tv_norm, possible_tv_norms))
if (~ismember(self.tv_norm, self.possible_tv_norms))
error([mfilename ':wrong_argument'], ...
'TV-norm: %s is not allowed! Use one of [%s] instead', ...
self.tv_norm, sprintf(' "%s"', possible_tv_norms{:}))
self.tv_norm, sprintf(' "%s"', self.possible_tv_norms{:}))
end
if (~ismember(self.tv_strategy, possible_tv_strategies))
if (~ismember(self.tv_strategy, self.possible_tv_strategies))
error([mfilename ':wrong_argument'], ...
'TV-strategy: %s is not allowed! Use one of [%s] instead', ...
self.tv_strategy, sprintf(' "%s"', possible_tv_strategies{:}))
self.tv_strategy, sprintf(' "%s"', self.possible_tv_strategies{:}))
end
if (~ismember(self.detector_norm, possible_detector_norms))
if (~ismember(self.detector_norm, self.possible_detector_norms))
error([mfilename ':wrong_argument'], ...
'Detector-norm: %s is not allowed! Use one of [%s] instead', ...
self.detector_norm, sprintf(' "%s"', possible_detector_norms{:}))
self.detector_norm, sprintf(' "%s"', self.possible_detector_norms{:}))
end
self.statistics.add_task('cp_dual_update_detector', 'CP Dual variable (detector) update');
......@@ -453,8 +455,8 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector
end
function p = update_dual_detector(self, p, proj_bls, sigma, sigma_1)
switch (self.detector_norm)
case 'KL'
switch (lower(self.detector_norm))
case 'kl'
for n = 1:numel(p)
temp_p = p{n} + sigma{n} .* proj_bls{n};
temp_bls = sigma{n} .* self.blobs{n};
......
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