From 3de68f4c20ce5204a0959e0b1a52d5dfe9e192e8 Mon Sep 17 00:00:00 2001 From: Nicola Vigano <nicola.vigano@esrf.fr> Date: Wed, 8 Apr 2015 17:31:10 +0200 Subject: [PATCH] 6D-Reconstruction: add possibility to manually restrict orientation space Signed-off-by: Nicola Vigano <nicola.vigano@esrf.fr> --- 5_reconstruction/gtReconstructGrainOrientation.m | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/5_reconstruction/gtReconstructGrainOrientation.m b/5_reconstruction/gtReconstructGrainOrientation.m index 9f1db7a0..b21a9e8c 100644 --- a/5_reconstruction/gtReconstructGrainOrientation.m +++ b/5_reconstruction/gtReconstructGrainOrientation.m @@ -1,4 +1,4 @@ -function gtReconstructGrainOrientation(grainID, phaseID, parameters) +function gtReconstructGrainOrientation(grainID, phaseID, parameters, rel_ospace_bb) % gtReconstructGrainOrientation 6D reconstructions on a GPU machine % gtAstraReconstructGrain(grainID, phaseID, [parameters]) % ------------------------------------------------------- @@ -24,7 +24,13 @@ function gtReconstructGrainOrientation(grainID, phaseID, parameters) rec_opts = gtReconstruct6DGetParamenters(parameters); sampler = GtOrientationSampling(parameters, gr); - sampler.make_simple_grid_estim_ODF('cubic', rec_opts.grid_edge, false, rec_opts.ospace_oversize); + if (~exist('rel_ospace_bb', 'var') || isempty(rel_ospace_bb)) + sampler.make_simple_grid_estim_ODF('cubic', rec_opts.grid_edge, false, rec_opts.ospace_oversize); + else + diff_r_vecs = tand(rel_ospace_bb / 2); + ospace_bb = [gr.R_vector + diff_r_vecs(1:3); gr.R_vector + diff_r_vecs(4:6)]; + sampler.make_even_simple_grid('cubic', rec_opts.grid_edge, ospace_bb', 1) + end if (rec_opts.super_sampling > 1) sampler.make_supersampling_simple_grid([1 2 3], rec_opts.super_sampling); end @@ -41,9 +47,11 @@ function gtReconstructGrainOrientation(grainID, phaseID, parameters) fprintf('\b\b: Done (%f seconds).\n', toc(c)) end + or_sizes = sampler.get_orientation_sampling_size(); + [avg_R_vecs, avg_R_vecs_int] = sampler.getAverageOrientations(vols, good_or); avg_R_vec = sampler.getAverageOrientation(vols, good_or); - s_g_odf = reshape(sampler.getODF(vols, good_or), rec_opts.grid_edge([1 1 1])); + s_g_odf = reshape(sampler.getODF(vols, good_or), or_sizes{1}); vol_size = size(avg_R_vecs_int); shift = gtFwdSimComputeVolumeShifts(gr.proj, parameters, vol_size); -- GitLab