astra_mex_data2d
astra_mex_data2d用于管理2D数据对象。它是MEX文件astra_MEX_data2d_c的包装器。
2D数据对象有两种:体积数据(volume data)和投影数据(正弦图)(projection data (sinograms))。
astra_mex_data2d包含以下命令:
"create"
"get"
"get_single"
"set/store"
"get_geometry"
"change_geometry"
"delete"
"clear"
"info"
create
id=astra_mex_data2d('create','-vol',vol_geom);
id=astra_mex_data2d('create','-vol',vol_geom,initializer);
这将为几何体vol_geom创建一个初始化的二维体积数据对象。
Initializer可以是:
标量:使用此常数值初始化对象。
矩阵:对象用这个矩阵的内容初始化。矩阵必须具有体积几何图形中定义的大小(y,x)。它必须是单、双或逻辑类。
如果Initializer不存在,则将volume初始化为零。
id=astra_mex_data2d('create','-sino',proj_geom);
id=astra_mex_data2d('create','-sino',proj_geom,initializer
这将为几何体proj_geom创建一个初始化的2D投影数据对象。
Initializer可以是:
标量:使用此常数值初始化对象。
矩阵:对象用这个矩阵的内容初始化。矩阵的大小必须是(角度,u),其中u是投影几何中定义的探测器像素数。它必须是单、双或逻辑类。
如果Initializer不存在,则将volume初始化为零。
get
A=astra_mex_data2d('get',id);
this fetches the data obection as a 2D matrix of class double
get_single
A=astra_mex_data2d('get_single',id);
This fetches the data object as a 2D matrix of class single.
set / store(set和store是同义)
astra_mex_data2d('set',id,A)
astra_mex_data2d('store',id,A)
将A存储在data object中。A的维度必须和astra_mex_data2d(‘create’)中使用的initializer相同
get_geometry
geom=astra_mex_data2d('get_geometry',id);
This gets the (volume or projection) geometry attached to the object.
change_geometry
astra_mex_data2d('change_geometry',id,geom);
这将更改附着到对象的(体积或投影)几何体。它可能不会更改数据对象的实际尺寸。例如,这可以用于更改像素尺寸或投影角度。
delete
astra_mex_data2d('delete',id);
释放数据对象的内存。
clear
astra_mex_data2d('clear');
释放所有数据对象。
info
astra_mex_data2d('info')
打印所有已分配数据对象的基本信息。