的fanbeam
函数计算预测图像矩阵沿指定方向的。二维函数的投影f (x, y)是线积分的集合。的fanbeam
函数计算沿单一源辐射路径的线积分,形成扇形。要表示图像,则fanbeam
函数通过围绕图像中心旋转源来从不同角度对图像进行多次投影。下图显示了在指定旋转角度下的单个扇束投影。
旋转角度下的扇束投影
当您使用fanbeam
函数时,可以指定图像以及扇形光束投影的顶点与旋转中心(图像中的中心像素)之间的距离作为参数。的fanbeam
函数根据图像的大小和设置来确定光束的数量fanbeam
参数。
的FanSensorGeometry
参数指定传感器对齐方式:“弧”
或“行”
.
风扇传感器几何 | 描述 |
---|---|
“弧” |
fanbeam 沿弧线定位传感器,以1度间隔间隔传感器。使用FanSensorSpacing 参数,通过指定每个波束之间的角度来控制传感器之间的距离。这是默认的风扇传感器几何形状。 |
“行” |
fanbeam 将传感器定位在直线上,而不是弧线上。使用FanSensorSpacing 参数指定传感器之间的距离(像素)x´轴。 |
的FanRotationIncrement
参数指定旋转角度的增量。默认情况下,fanbeam
以1度的间隔将源围绕中心像素旋转,以不同角度进行投影。
下图说明了这两种几何图形。第一个图展示了fanbeam
函数的时候FanSensorGeometry
被设置为“弧”
(默认)。注意如何通过指定光束的角间距来指定传感器之间的距离。
扇形光束投影与圆弧几何
的几何图形fanbeam
函数的时候FanSensorGeometry
被设置为“行”
.在该图中,注意如何通过指定传感器之间的距离(以像素为单位)来指定传感器的位置x´轴。
扇形光束投影与线几何
要从扇形光束投影数据重建图像,使用ifanbeam
函数。使用这个函数,您可以指定投影数据以及创建投影数据时扇形光束投影顶点与旋转中心之间的距离作为参数。例如,这段代码重新创建了映像我
从投影数据来看P
和距离D
.
I = ifanbeam (P、D);
默认情况下,ifanbeam
函数假设扇形光束投影数据是使用圆弧扇形传感器几何体创建的,光束以1度角度间隔,投影以1度增量在整个360度范围内进行。与fanbeam
功能,可以使用ifanbeam
参数来指定投影数据的这些特征的其他值。对这些参数使用创建投影数据时使用的相同值。有关这些参数的更多信息,请参见ifanbeam
.
的ifanbeam
函数将扇形光束投影数据转换为平行光束投影数据fan2para
函数,然后调用iradon
函数执行图像重建。由于这个原因,ifanfeam
函数支持某些金宝appiradon
参数,它传递给iradon
函数。看到氡反变换有关的更多信息iradon
函数。
这个例子展示了如何使用fanbeam
和ifanbeam
从样本图像形成投影,然后根据投影重建图像。
生成测试图像并显示它。测试图像是谢普-洛根头部幻影,可以由幻影
函数。这幅幻像说明了现实世界人类头部的层析成像的许多特性。
P =幻影(256);imshow (P)
计算测试图像的扇束投影数据,使用FanSensorSpacing
参数来改变传感器间距。该示例使用扇形光束弧几何,因此您可以通过指定光束的角间距来指定传感器之间的间距。第一呼叫间隔梁2度;第二个是1度;第三个是0.25度。在每次调用中,旋转中心和投影顶点之间的距离恒定为250像素。此外,fanbeam
围绕中心像素以1度增量旋转投影。
D = 250;dsensor1 = 2;F1 = fanbeam (P D“FanSensorSpacing”, dsensor1);dsensor2 = 1;F2 = fanbeam (P D“FanSensorSpacing”, dsensor2);dsensor3 = 0.25;[F3, sensor_pos3, fan_rot_angles3] = fanbeam(P,D,...“FanSensorSpacing”, dsensor3);
绘制投影数据F3
.因为fanbeam
计算从0到360度旋转角度的投影数据,相同的模式发生在180度偏移。从两边采集相同的特征。
图,imagesc(fan_rot_angles3, sensor_pos3, F3) colormap(hot);colorbar包含(“风扇旋转角度(度)”) ylabel (“风扇传感器位置(度)”)
利用扇形光束投影数据重建图像ifanbeam
.在每次重建中,将风扇传感器间距与之前创建投影数据时使用的间距进行匹配。示例使用OutputSize
参数,以约束每次重建的输出大小与原始图像的大小相同P
.在输出中,注意重建的质量如何随着投射光束数量的增加而提高。第一个图片,Ifan1
,使用梁的2度间距创建;第二张图片,Ifan2
,使用梁的1度间距创建;第三个图片,Ifan3
,使用0.25间距的梁创建。
output_size = max(大小(P));Ifan1 = ifanbeam (F1, D,...“FanSensorSpacing”dsensor1,“OutputSize”, output_size);图中,imshow (Ifan1)标题(“Ifan1”)
Ifan2 = ifanbeam (F2 D...“FanSensorSpacing”dsensor2,“OutputSize”, output_size);图中,imshow (Ifan2)标题(“Ifan2”)
Ifan3 = ifanbeam (F3, D,...“FanSensorSpacing”dsensor3,“OutputSize”, output_size);图中,imshow (Ifan3)标题(“Ifan3”)