diff options
Diffstat (limited to 'samples/s006_3d_data.m')
-rw-r--r-- | samples/s006_3d_data.m | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/samples/s006_3d_data.m b/samples/s006_3d_data.m new file mode 100644 index 0000000..b836198 --- /dev/null +++ b/samples/s006_3d_data.m @@ -0,0 +1,62 @@ +%------------------------------------------------------------------------ +% This file is part of the +% All Scale Tomographic Reconstruction Antwerp Toolbox ("ASTRA-Toolbox") +% +% Copyright: iMinds-Vision Lab, University of Antwerp +% License: Open Source under GPLv3 +% Contact: mailto:astra@ua.ac.be +% Website: http://astra.ua.ac.be +%------------------------------------------------------------------------ + +% Create a 3D volume geometry. +% Parameter order: rows, colums, slices (y, x, z) +vol_geom = astra_create_vol_geom(64, 48, 32); + + +% Create volumes + +% initialized to zero +v0 = astra_mex_data3d('create', '-vol', vol_geom); + +% initialized to 3.0 +v1 = astra_mex_data3d('create', '-vol', vol_geom, 3.0); + +% initialized to a matrix. A may be a single or double array. +% Coordinate order: column, row, slice (x, y, z) +A = zeros(48, 64, 32); +v2 = astra_mex_data3d('create', '-vol', vol_geom, A); + + +% Projection data + +% 2 projection directions, along x and y axis resp. +V = [ 1 0 0 0 0 0 0 1 0 0 0 1 ; ... + 0 1 0 0 0 0 -1 0 0 0 0 1 ]; +% 32 rows (v), 64 columns (u) +proj_geom = astra_create_proj_geom('parallel3d_vec', 32, 64, V); + +s0 = astra_mex_data3d('create', '-proj3d', proj_geom); + +% Initialization to a scalar or zero works exactly as with a volume. + +% Initialized to a matrix: +% Coordinate order: column (u), angle, row (v) +A = zeros(64, 2, 32); +s1 = astra_mex_data3d('create', '-proj3d', proj_geom, A); + + +% Retrieve data: +R = astra_mex_data3d('get', v1); + +% Retrieve data as a single array. Since astra internally stores +% data as single precision, this is more efficient: +R = astra_mex_data3d('get_single', v1); + + + +% Delete all created data objects +astra_mex_data3d('delete', v0); +astra_mex_data3d('delete', v1); +astra_mex_data3d('delete', v2); +astra_mex_data3d('delete', s0); +astra_mex_data3d('delete', s1); |