tomopy.recon.rotation

用于查找旋转轴相关功能的模块。

Functions:

find_center(tomo, theta[, ind, init, tol, ...])

查找旋转轴位置。

find_center_vo(tomo[, ind, smin, smax, ...])

用NghiaVo的方法找出旋转轴的位置。

find_center_pc(proj1, proj2[, tol, rotc_guess])

通过在傅立叶空间中使用相位相关找到第一个投影和镜像投影之间180度间隔的偏移量来找到旋转轴位置。

write_center(tomo, theta[, dpath, ...])

保存使用一系列旋转中心重建的图像。

tomopy.recon.rotation.find_center(tomo, theta, ind=None, init=None, tol=0.5, mask=True, ratio=1.0, sinogram_order=False)[源代码]

查找旋转轴位置。

该函数利用由于旋转中心的移动而在重建图像中产生的系统伪影。它使用图像熵作为误差度量,并使用(Scipy优化模块的)Neld-Mead例程作为优化器 [B12]

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

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

  • ind ( int, optional )--要用于重建的切片的索引。

  • init ( float )--对中锋的初步猜测。

  • tol ( scalar )--所需的亚像素精度。

  • mask ( bool, optional )--如果 True ,将圆形蒙版应用于重建图像以将分析限制在圆形区域内。

  • ratio ( float, optional )--圆形遮罩的半径与重建图像边缘的比率。

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

返回:

float --旋转轴位置。

tomopy.recon.rotation.find_center_pc(proj1, proj2, tol=0.5, rotc_guess=None)[源代码]

通过在傅立叶空间中使用相位相关找到第一个投影和镜像投影之间180度间隔的偏移量来找到旋转轴位置。这个 phase_cross_correlation 函数使用傅立叶空间中的互相关,可选地使用上采样矩阵乘法DFT来实现任意亚像素精度。 [B16]

参数:
  • proj1 ( ndarray )--2D投影数据。

  • proj2 ( ndarray )--2D投影数据。

  • tol ( scalar, optional )--亚像素精度

  • rotc_guess ( float, optional )--旋转中心的初始猜测值

返回:

float --旋转轴位置。

tomopy.recon.rotation.find_center_vo(tomo, ind=None, smin=-50, smax=50, srad=6, step=0.25, ratio=0.5, drop=20, ncore=None)[源代码]

用NghiaVo的方法找出旋转轴的位置。 [B25]

参数:
  • tomo ( ndarray )-3D层析数据或2D正弦图。

  • ind ( int, optional )--要用于重建的切片的索引。

  • smin, smax ( int, optional )--粗搜索半径。对正弦图形水平中心的引用。

  • srad ( float, optional )--精细搜索半径。

  • step ( float, optional )--精细搜索的步骤。

  • ratio ( float, optional )--相机的视场与物体大小之间的比率。它被用来生成面具。

  • drop ( int, optional )--在蒙版的垂直中心周围放置线条。

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

返回:

float --旋转轴位置。

tomopy.recon.rotation.mask_empty_slice(tomo, threshold=0.25)[源代码]

生成掩码以指示当前切片是否包含样本

在APS 1ID处,一些投影图像在样本上方包含大片空白区域,导致空层。

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

  • threshold ( float, optional )--确定某个层是否被视为空

返回:

nparray --遮罩表示每一层的空白

tomopy.recon.rotation.write_center(tomo, theta, dpath='tmp/center', cen_range=None, ind=None, mask=False, ratio=1.0, sinogram_order=False, algorithm='gridrec', filter_name='parzen')[源代码]

保存使用一系列旋转中心重建的图像。

通过视觉检查使用一组不同中心重建的图像来帮助手动找到旋转中心。输出图像被放入指定的文件夹中,并根据与图像对应的中心位置命名。

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

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

  • dpath ( str, optional )--保存输出图像的文件夹名称。

  • cen_range ( list, optional )- [start, end, step] 中心值的范围。

  • ind ( int, optional )--要用于重建的切片的索引。

  • mask ( bool, optional )--如果 True ,将圆形蒙版应用于重建图像以将分析限制在圆形区域内。

  • ratio ( float, optional )--圆形遮罩的半径与重建图像边缘的比率。

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

  • algorithm ( {str, function} )--以下字符串值之一。

    “艺术”

    代数重建技术 [B2]

    “巴特”

    块代数重建技术。

    ‘fBP’

    滤波反投影算法。

    “GRADREC”

    傅里叶网格重建算法 [B5][B23]

    ‘mlem’

    最大似然期望最大化算法 [B3]

    《奥塞姆》

    有序子集期望最大化算法 [B18]

    'ospml_hybrid'

    加权线性惩罚和二次惩罚的有序子集惩罚最大似然算法。

    'ospml_quad'

    二次惩罚的有序子集惩罚最大似然算法。

    'pml_hybrid'

    加权线性和二次惩罚的惩罚最大似然算法 [B19]

    'pml_quad'

    带有二次惩罚的惩罚最大似然算法。

    “先生”

    同步代数重建技术。

    “电视”

    全变差重建技术 [B8]

    ‘Grad’

    固定步长的梯度下降法

    ‘tikh’

    具有单位Tikhonov矩阵的Tikhonov正则化。

filter_name字符串,可选

用于分析重建的筛选器的名称。

“无”

没有过滤器。

“谢普”

谢普-洛根过滤器(默认)。

“余弦”

余弦滤波。

‘Hann’

余弦滤波。

《汉明》

海明滤波器。

“Ramlak”

Ram-LAK过滤器。

“帕尔岑”

帕尔岑过滤器。

《巴特沃斯》

巴特沃斯过滤器。

‘风俗’

数量稀少的大小数组 next_power_of_2(num_detector_columns)/2 指定傅立叶域中的自定义筛选器。滤波器的第一个元件应该是零频分量。

“Custom2d”

数量稀少的大小数组 num_projections*next_power_of_2(num_detector_columns)/2 指定傅立叶域中的自定义角度相关过滤器。每个滤波器的第一个元件应该是零频分量。