tomopy.sim.project

用于模拟X射线的模块。

Functions:

angles(nang[, ang1, ang2])

返回以弧度表示的均匀分布的投影角度。

project(obj, theta[, center, emission, pad, ...])

通过给定的3D对象投射x射线。

fan_to_para(tomo, dist, geom)

将扇束数据转换为平行束数据。

para_to_fan(tomo, dist, geom)

将平行束数据转换为扇束数据。

add_gaussian(tomo[, mean, std])

添加高斯噪波。

add_poisson \(Tomo)

添加泊松噪波。

add_salt_pepper(tomo[, prob, val])

添加盐和胡椒噪波。

add_focal_spot_blur(tomo, spotsize)

添加焦点模糊。

tomopy.sim.project.add_drift(tomo, amp=0.2, period=50, mean=1)[源代码]

添加照明漂移。

照明漂移是由物体旋转时的光束不稳定性引起的。

这种漂移是用正弦曲线模拟的。这改变了沿旋转维度的照明。垂直尺寸是恒定的。

参数:
  • tomo ( ndarray )--3D断层扫描数据。

  • amp ( float )-漂移的幅度。

  • period ( float )--漂移的周期。

返回:

ndarray --添加了Zingers的断层扫描数据。

tomopy.sim.project.add_focal_spot_blur(tomo, spotsize)[源代码]

添加焦点模糊。

警告

尚未实施。

参数:
  • tomo ( ndarray )--3D断层扫描数据。

  • spotsize ( float )--圆形X射线源的焦点大小。

tomopy.sim.project.add_gaussian(tomo, mean=0, std=None)[源代码]

添加高斯噪波。

参数:
  • tomo ( ndarray )--3D断层扫描数据。

  • mean ( float, optional )--高斯分布的平均值。

  • std ( float, optional )--高斯分布的标准差。

返回:

ndarray --添加高斯噪声后的三维层析数据。

tomopy.sim.project.add_poisson(tomo)[源代码]

添加泊松噪波。

参数:

tomo ( ndarray )--3D断层扫描数据。

返回:

ndarray --添加泊松噪声后的三维层析数据。

tomopy.sim.project.add_rings(tomo, std=0.05)[源代码]

添加戒指。

光环是由探测器上像素敏感度不一致引起的。

像素的灵敏度被建模为正态分布,平均灵敏度为1,并给出了标准差。

参数:
  • tomo ( ndarray )--3D断层扫描数据。

  • std ( float )--像素灵敏度的标准差

返回:

ndarray --添加了Zingers的断层扫描数据。

tomopy.sim.project.add_salt_pepper(tomo, prob=0.01, val=None)[源代码]

添加盐和胡椒噪波。

参数:
  • tomo ( ndarray )--3D断层扫描数据。

  • prob ( float, optional )-像素的每个元素可能被盐和胡椒型噪声破坏的独立概率。

  • val ( float, optional )--要分配给损坏像素的值。

返回:

ndarray -添加盐和胡椒噪声后的三维层析数据。

tomopy.sim.project.add_zingers(tomo, f=0.01, sat=65536)[源代码]

加入激动人心的声音。

抖动是由杂散X射线击中探测器并导致像素饱和引起的。

Zinger以给定的频率均匀地分布在数据集上。

参数:
  • tomo ( ndarray )--3D断层扫描数据。

  • f ( float )--属于Zinger的测量值的比例。

  • sat ( float )--像素饱和值。

返回:

ndarray --添加了Zingers的断层扫描数据。

tomopy.sim.project.angles(nang, ang1=0.0, ang2=180.0)[源代码]

返回以弧度表示的均匀分布的投影角度。

参数:
  • nang ( int, optional )--投影数。

  • ang1 ( float, optional )--以度为单位的第一个投影角度。

  • ang2 ( float, optional )--最后一个投影角度,以度为单位。

返回:

array --投影角度

tomopy.sim.project.fan_to_para(tomo, dist, geom)[源代码]

将扇束数据转换为平行束数据。

警告

尚未实施。

参数:
  • tomo ( ndarray )--3D断层扫描数据。

  • dist ( float )--扇束顶点到旋转中心的距离。

  • geom ( str )-扇形光束几何图形。“圆弧”或“直线”。

返回:

ndarray --转换后的三维层析数据。

tomopy.sim.project.para_to_fan(tomo, dist, geom)[源代码]

将平行束数据转换为扇束数据。

警告

尚未实施。

参数:
  • tomo ( ndarray )--3D断层扫描数据。

  • dist ( float )--扇束顶点到旋转中心的距离。

  • geom ( str )-扇形光束几何图形。“圆弧”或“直线”。

返回:

ndarray --转换后的三维层析数据。

tomopy.sim.project.project(obj, theta, center=None, emission=True, pad=True, sinogram_order=False, ncore=None, nchunk=None)[源代码]

通过给定的3D对象投射x射线。

参数:
  • obj ( ndarray )--体素化的3D对象。

  • theta ( array )--以弧度为单位的投影角度。

  • center ( array, optional )--旋转轴的位置。

  • emission ( bool, optional )--确定输出数据是发射类型还是传输类型。

  • pad ( bool, optional )--确定是否填充投影图像宽度。如果为True,则对象横截面的对角长度将用于投影图像宽度的输出大小。

  • sinogram_order ( bool, optional )--确定输出数据是正弦图形堆栈(True,y轴第一轴)还是射线照片堆栈(False,theta第一轴)。

  • ncore ( int, optional )--将分配给作业的核心数量。

  • nchunk ( int, optional )--每个核心的区块大小。

返回:

ndarray --三维断层扫描数据。

tomopy.sim.project.project2(objx, objy, theta, center=None, emission=True, pad=True, sinogram_order=False, axis=0, ncore=None, nchunk=None)[源代码]

通过给定的3D对象投射x射线。

参数:
  • objx ( ndarray )-体素化3D对象的向量的(x,y)分量。

  • theta ( array )--以弧度为单位的投影角度。

  • center ( array, optional )--旋转轴的位置。

  • emission ( bool, optional )--确定输出数据是发射类型还是传输类型。

  • pad ( bool, optional )--确定是否填充投影图像宽度。如果为True,则对象横截面的对角长度将用于投影图像宽度的输出大小。

  • sinogram_order ( bool, optional )--确定输出数据是正弦图形堆栈(True,y轴第一轴)还是射线照片堆栈(False,theta第一轴)。

  • ncore ( int, optional )--将分配给作业的核心数量。

  • nchunk ( int, optional )--每个核心的区块大小。

返回:

ndarray --三维断层扫描数据。

tomopy.sim.project.project3(objx, objy, objz, theta, center=None, emission=True, pad=True, sinogram_order=False, axis=0, ncore=None, nchunk=None)[源代码]

通过给定的3D对象投射x射线。

参数:
  • objx ( ndarray )-体素化3D对象的向量的(x,y)分量。

  • theta ( array )--以弧度为单位的投影角度。

  • center ( array, optional )--旋转轴的位置。

  • emission ( bool, optional )--确定输出数据是发射类型还是传输类型。

  • pad ( bool, optional )--确定是否填充投影图像宽度。如果为True,则对象横截面的对角长度将用于投影图像宽度的输出大小。

  • sinogram_order ( bool, optional )--确定输出数据是正弦图形堆栈(True,y轴第一轴)还是射线照片堆栈(False,theta第一轴)。

  • ncore ( int, optional )--将分配给作业的核心数量。

  • nchunk ( int, optional )--每个核心的区块大小。

返回:

ndarray --三维断层扫描数据。