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

6D-reconstructions: fixed a few small bugs

parent 843fe594
No related branches found
No related tags found
No related merge requests found
......@@ -68,6 +68,7 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector
self.statistics.add_task('cp_dual_update_detector', 'CP Dual variable (detector) update');
self.statistics.add_task_partial('cp_dual_update_detector', 'cp_dual_detector_FP', 'Forward Projection');
self.statistics.add_task_partial('cp_dual_update_detector', 'cp_dual_detector_SB', 'Sinograms -> Blobs');
self.statistics.add_task_partial('cp_dual_update_detector', 'cp_dual_detector_IN', 'Projected blobs initialization');
self.statistics.add_task_partial('cp_dual_update_detector', 'cp_dual_detector_PSF', 'PSF application');
self.statistics.add_task_partial('cp_dual_update_detector', 'cp_dual_detector_prox', 'Proximal application');
self.statistics.add_task('cp_dual_update_l1', 'CP Dual variable (l1) update');
......@@ -570,7 +571,9 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector
apply_stats = true;
end
c = tic();
proj_bls = gtMathsGetSameSizeZeros(self.blobs);
timing_in = toc(c);
timing_fp = 0;
timing_sb = 0;
......@@ -591,6 +594,7 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector
if (apply_stats)
self.statistics.add_timestamp(timing_fp, 'cp_dual_update_detector', 'cp_dual_detector_FP');
self.statistics.add_timestamp(timing_sb, 'cp_dual_update_detector', 'cp_dual_detector_SB');
self.statistics.add_timestamp(timing_in, 'cp_dual_update_detector', 'cp_dual_detector_IN');
end
end
......@@ -642,6 +646,9 @@ classdef Gt6DBlobReconstructor < Gt6DVolumeToBlobProjector
c = tic();
self.fwd_weights = self.getRowsSum();
self.fwd_weights = self.apply_psf(self.fwd_weights, true);
for ii_b = 1:numel(self.fwd_weights)
self.fwd_weights{ii_b} = abs(self.fwd_weights{ii_b});
end
fprintf('\b\b (%3.1f s)\n', toc(c));
fprintf(' + Computing back-projection weights..');
......
......@@ -630,7 +630,7 @@ classdef Gt6DReconstructionAlgorithmFactory < handle
fprintf('\nGlobal PSF used for all orientation-space regions\n\n')
psf = { permute(self.parameters.rec.grains.options.psf, [1 3 2]) };
else
fprintf('\nNo PSF used for all orientation-space regions\n\n')
fprintf('\nNo PSF used for any orientation-space region\n\n')
psf = {};
end
......@@ -926,6 +926,12 @@ classdef Gt6DReconstructionAlgorithmFactory < handle
blob = blobs(ii).intm;
blob(blob < 0) = 0;
nan_inds = isnan(blob);
if (any(nan_inds(:)))
warning('Gt6DReconstructionAlgorithmFactory:bad_blob', ...
'Blob %d contains NaN! Setting them to 0', ii)
end
blob(nan_inds) = 0;
blob = blob ./ gtMathsSumNDVol(blob);
pad_interp_blobs{ii} = zeros(blobs_sizes(ii, :), self.data_type);
......
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