summaryrefslogtreecommitdiffstats
path: root/samples/s006_3d_data.m
diff options
context:
space:
mode:
Diffstat (limited to 'samples/s006_3d_data.m')
-rw-r--r--samples/s006_3d_data.m62
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);