From 6314361af90d29e003ea6813e4a2f8a4c6103974 Mon Sep 17 00:00:00 2001 From: Nicola Vigano <nicola.vigano@esrf.fr> Date: Thu, 18 Feb 2016 18:02:01 +0100 Subject: [PATCH] ODF-solvers: added ospace oversampling Signed-off-by: Nicola Vigano <nicola.vigano@esrf.fr> --- zUtil_Deformation/GtGrainODFwSolver.m | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/zUtil_Deformation/GtGrainODFwSolver.m b/zUtil_Deformation/GtGrainODFwSolver.m index 54d632d0..4ec945b6 100644 --- a/zUtil_Deformation/GtGrainODFwSolver.m +++ b/zUtil_Deformation/GtGrainODFwSolver.m @@ -17,7 +17,7 @@ classdef GtGrainODFwSolver < handle St_ws; tau_ws; - num_iter = 0; + num_iter = 50; verbose = false; end @@ -42,11 +42,13 @@ classdef GtGrainODFwSolver < handle conf = struct( ... 'algorithm', 'sirt', ... 'lambda', 1e-2, ... - 'ospace_oversize', 1.1, ... + 'ospace_oversize', 1, ... + 'ospace_oversampling', 0, ... 'det_index', 1 ); conf = parse_pv_pairs(conf, varargin); - self.build_orientation_sampling(ref_gr, conf.ospace_oversize, conf.det_index); + self.build_orientation_sampling(ref_gr, conf.det_index, ... + conf.ospace_oversize, conf.ospace_oversampling); bls = self.sampler.bl(self.sampler.selected); self.build_sinogram(); @@ -68,10 +70,10 @@ classdef GtGrainODFwSolver < handle end methods (Access = public) % Low Level API - function build_orientation_sampling(self, ref_gr, oversize, det_index) + function build_orientation_sampling(self, ref_gr, det_index, oversize, oversampling) self.sampler = GtOrientationSampling(self.parameters, ref_gr, ... - 'verbose', self.verbose, 'detector_index', det_index); - self.sampler.make_grid_estim_ODF_resoluion('cubic', 0, oversize); + 'verbose', self.verbose && false, 'detector_index', det_index); + self.sampler.make_grid_estim_ODF_resoluion('cubic', -oversampling, oversize); self.size_volume = size(self.sampler.lattice.gr); end @@ -202,9 +204,6 @@ classdef GtGrainODFwSolver < handle function solve_sirt(self) c = tic(); - if (~self.num_iter) - self.num_iter = 100; - end residuals = zeros(self.num_iter, 1); x0 = self.bw(self.bp(self.fw(self.sino))); @@ -241,9 +240,6 @@ classdef GtGrainODFwSolver < handle function solve_cplsnn(self) c = tic(); - if (~self.num_iter) - self.num_iter = 50; - end residuals = zeros(self.num_iter, 1); p = gtMathsGetSameSizeZeros(self.S__ws); @@ -278,9 +274,6 @@ classdef GtGrainODFwSolver < handle function solve_cplsl1nn(self, lambda) c = tic(); - if (~self.num_iter) - self.num_iter = 50; - end residuals = zeros(self.num_iter, 1); p = gtMathsGetSameSizeZeros(self.S__ws); @@ -324,9 +317,6 @@ classdef GtGrainODFwSolver < handle rescaled_sino = self.sino ./ norm(self.sino(:)) .* self.get_num_ws(); c = tic(); - if (~self.num_iter) - self.num_iter = 50; - end residuals = zeros(self.num_iter, 1); p = gtMathsGetSameSizeZeros(self.S__ws); -- GitLab