我的问题是,对于给定的图像和投影几何,我是否可以最佳地确定源与旋转中心之间的距离以及旋转中心与探测器阵列之间的距离。最优我的意思是测量向量的零条目的数量被最小化。
在下面的代码片段中,我使用了用于模拟 2D 断层扫描的 Astra 工具箱。
from skimage.io import imread
from astra import creators, optomo
import numpy as np
# load some 400x400 pixel image
image = imread("/path/to/image.png, as_gray=True)"
# create geometries and projector
# proj_geom = astra_create_proj_geom('fanflat', det_width, det_count, angles, source_origin, origin_det)
proj_geom = creators.create_proj_geom('fanflat', 1.0, 400, np.linspace(0,np.pi,180), 1500.0, 500.0);
vol_geom = creators.create_vol_geom(400,400)
proj_id = creators.create_projector('line_fanflat', proj_geom, vol_geom)
# create forward projection
# fp is our measurement vector
W = optomo.OpTomo(proj_id)
fp = W*image
在我的示例中,如果我使用 arenp.linspace(0,np.pi,180)
的零条目的fp
数量1108
,如果我改用np.linspace(0,np.pi/180,180)
数字增加,5133
这使我相信值1500.0
和500.0
没有很好地选择。