tomopy.prep.alignment

Functions:

align_seq(prj, ang[, fdir, iters, pad, ...])

使用顺序重新投影算法对齐投影图像堆栈 [B9]

align_joint(prj, ang[, fdir, iters, pad, ...])

使用联合重新投影算法对齐投影图像堆栈 [B9]

add_jitter(prj[, low, high])

模拟投影图像中的抖动。

add_noise(prj[, ratio])

将均值为零的高斯噪声与给定的标准差相加,作为数据中最大值的比率。

blur_edges(prj[, low, high])

模糊投影图像的边缘。

shift_images(prj, sx, sy)

水平和垂直方向上给定的一组移位值的移位投影图像。

scale \(prj)

在-1到1之间的范围内线性缩放投影图像。

tilt(obj[, rad, phi])

使对象与旋转轴成给定角度倾斜。

distortion_correction_proj(tomo, xcenter, ...)

使用多项式模型对投影应用失真校正。

distortion_correction_sino(tomo, ind, ...)

使用所述多项式模型生成3D层析数据的未扭曲正弦图。

tomopy.prep.alignment.add_jitter(prj, low=0, high=1)[源代码]

模拟投影图像中的抖动。抖动是通过在半开区间[低、高]上从均匀分布中随机抽取样本来模拟的。

参数:
  • prj ( ndarray )--投影图像的3D堆叠。第一维是投影轴,第二和第三维分别是投影图像的x轴和y轴。

  • low ( float, optional )--输出区间的下限。生成的所有值都将大于或等于下限。默认值为0。

  • high ( float )--输出区间的上界。所有生成的值都将小于高值。默认值为1.0。

返回:

ndarray --具有抖动的3D投影图像堆叠。

tomopy.prep.alignment.add_noise(prj, ratio=0.05)[源代码]

将均值为零的高斯噪声与给定的标准差相加,作为数据中最大值的比率。

参数:
  • prj ( ndarray )--投影图像的3D堆叠。第一维是投影轴,第二和第三维分别是投影图像的x轴和y轴。

  • ratio ( float, optional )--高斯噪声分布的标准差与数据中最大值的比率。

返回:

ndarray --添加了高斯噪声的3D投影图像堆叠。

tomopy.prep.alignment.align_joint(prj, ang, fdir='./', iters=10, pad=(0, 0), blur=True, center=None, algorithm='sirt', upsample_factor=10, rin=0.5, rout=0.8, save=False, debug=True)[源代码]

使用联合重新投影算法对齐投影图像堆栈 [B9]

参数:
  • prj ( ndarray )--投影图像的3D堆叠。第一维是投影轴,第二和第三维分别是投影图像的x轴和y轴。

  • ang ( ndarray )--以弧度为单位的投影角度数组。

  • iters ( scalar, optional )--算法的迭代次数。

  • pad ( list-like, optional )--x轴和y轴投影图像的填充。

  • blur ( bool, optional )--在配准之前模糊图像的边缘。

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

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

    “艺术”

    代数重建技术 [B2]

    “GRADREC”

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

    ‘mlem’

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

    “先生”

    同步代数重建技术。

    “电视”

    全变差重建技术 [B8]

    ‘Grad’

    固定步长的梯度下降法

  • upsample_factor ( integer, optional )--上采样系数。配准精度与上采样因子成反比。

  • rin ( scalar, optional )--模糊函数的内径。RING内的像素设置为1。

  • rout ( scalar, optional )--模糊函数的外半径。布线外的像素设置为零。

  • save ( bool, optional )--为每次算法迭代保存投影和相应的重建。

  • debug ( book, optional )--提供迭代和错误等调试信息。

返回:

  • ndarray --具有抖动的3D投影图像堆叠。

  • ndarray --每次迭代的错误数组。

tomopy.prep.alignment.align_seq(prj, ang, fdir='.', iters=10, pad=(0, 0), blur=True, center=None, algorithm='sirt', upsample_factor=10, rin=0.5, rout=0.8, save=False, debug=True)[源代码]

使用顺序重新投影算法对齐投影图像堆栈 [B9]

参数:
  • prj ( ndarray )--投影图像的3D堆叠。第一维是投影轴,第二和第三维分别是投影图像的x轴和y轴。

  • ang ( ndarray )--以弧度为单位的投影角度数组。

  • iters ( scalar, optional )--算法的迭代次数。

  • pad ( list-like, optional )--x轴和y轴投影图像的填充。

  • blur ( bool, optional )--在配准之前模糊图像的边缘。

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

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

    “艺术”

    代数重建技术 [B2]

    “GRADREC”

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

    ‘mlem’

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

    “先生”

    同步代数重建技术。

    “电视”

    全变差重建技术 [B8]

    ‘Grad’

    固定步长的梯度下降法

  • upsample_factor ( integer, optional )--上采样系数。配准精度与上采样因子成反比。

  • rin ( scalar, optional )--模糊函数的内径。RING内的像素设置为1。

  • rout ( scalar, optional )--模糊函数的外半径。布线外的像素设置为零。

  • save ( bool, optional )--为每次算法迭代保存投影和相应的重建。

  • debug ( book, optional )--提供迭代和错误等调试信息。

返回:

  • ndarray --具有抖动的3D投影图像堆叠。

  • ndarray --每次迭代的错误数组。

tomopy.prep.alignment.blur_edges(prj, low=0, high=0.8)[源代码]

模糊投影图像的边缘。

参数:
  • prj ( ndarray )--投影图像的3D堆叠。第一维是投影轴,第二和第三维分别是投影图像的x轴和y轴。

  • low ( scalar, optional )--模糊帧与图像大小的最小比率。

  • high ( scalar, optional )--模糊帧与图像大小的最大比率。

返回:

ndarray --边缘模糊的3D投影图像堆叠。

tomopy.prep.alignment.calc_slit_box_aps_1id(slit_box_corners, inclip=(1, 10, 1, 10))[源代码]

根据给定的滑动角计算剪贴框。

参数:
  • slit_box_corners ( np.ndarray )--缝隙框的四角为4x2矩阵

  • inclip ( tuple, optional )--额外的剪裁以避免剪裁人工制品

返回:

Tuple --将索引剪裁为四个元组(clipFromTop、clipToBottom、clipFromLeft、clipToRight)

tomopy.prep.alignment.distortion_correction_proj(tomo, xcenter, ycenter, list_fact, ncore=None, nchunk=None)[源代码]

使用多项式模型对投影应用失真校正。使用Vounwarp程序包计算系数 [B27]

在 1.7 版本加入.

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

  • xcenter ( float )--x方向的变形中心。从图像的左侧开始。

  • ycenter ( float )--y方向的变形中心。从图像的顶部开始。

  • list_fact ( list of floats )--反向模型的多项式系数。

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

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

返回:

ndarray --修正了3D断层扫描数据。

tomopy.prep.alignment.distortion_correction_sino(tomo, ind, xcenter, ycenter, list_fact)[源代码]

使用所述多项式模型生成3D层析数据的未扭曲正弦图。使用Vounwarp程序包计算系数 [B27]

在 1.7 版本加入.

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

  • ind ( int )--未扭曲正弦图的索引。

  • xcenter ( float )--x方向的变形中心。从图像的左侧开始。

  • ycenter ( float )--y方向的变形中心。从图像的顶部开始。

  • list_fact ( list of floats )--反向模型的多项式系数。

返回:

2D array --修正了正弦图。

tomopy.prep.alignment.find_slits_corners_aps_1id(img, method='quadrant+', medfilt2_kernel_size=3, medfilt_kernel_size=23)[源代码]

通过四个角自动定位缝隙框的位置。

注:形成结合盒的四个狭缝是APS_1id的电流设置,它减少了探测器上的照明区域。由于狭缝是静止的,它们可以作为检查探测器在扫描过程中漂移的参考。从技术上讲,四个狭缝应该用来寻找变换矩阵(不一定是仿射的)来校正图像。然而,由于我们处理的是失真非常小的2D图像,所以使用仿射变换矩阵进行逼近。因此,使用了“四个角”而不是所有四个狭缝。

参数:
  • img ( np.ndarray )--2D图像

  • method ( str, ['simple', 'quadrant', 'quadrant+'], optional )-

    一种自动检测狭缝拐角的方法
    • 简单::假设为矩形狭缝框,速度较快,但精度较低

      (1像素精度)

    • 象限::将图像细分为四个象限,然后使用

      找到角点的显式方法(1像素精度)

    • 象限+::类似于象限,但使用curve_fit(Gauss1d)

      查找拐角(0.1像素精度)

  • medfilt2_kernel_size ( int, optional )--用于降噪的2D中值滤波核大小

  • medfilt_kernel_size ( int, optional )--用于降噪的一维中值滤波核大小

返回:

tuple --自动检测狭缝拐角(逆时针顺序)(左上角、左下角、右下角、右上角)

tomopy.prep.alignment.load_distortion_coefs(file_path)[源代码]

从文本文件加载失真系数。文本文件中信息的顺序:xcenter ycenter factor0 factor1 factor2.

参数:

file_path ( Path to the file. )

返回:

Tuple of (xcenter, ycenter, list_fact).

tomopy.prep.alignment.remove_slits_aps_1id(imgstacks, slit_box_corners, inclip=(1, 10, 1, 10))[源代码]

去除静止图像中的缝隙

参数:
  • imgstacks ( np.ndarray )--断层图像堆栈(AXIS_0是Oemga方向)

  • slit_box_corners ( np.ndarray )--开口盒的四个角

  • inclip ( tuple, optional )--额外的剪裁以避免剪裁人工制品

返回:

np.ndarray --断层图像堆叠,没有狭缝外的区域

tomopy.prep.alignment.scale(prj)[源代码]

在-1到1之间的范围内线性缩放投影图像。

参数:

prj ( ndarray )--投影图像的3D堆叠。第一维是投影轴,第二和第三维分别是投影图像的x轴和y轴。

返回:

ndarray --缩放的3D投影图像堆叠。

tomopy.prep.alignment.shift_images(prj, sx, sy)[源代码]

水平和垂直方向上给定的一组移位值的移位投影图像。

tomopy.prep.alignment.tilt(obj, rad=0, phi=0)[源代码]

使对象与旋转轴成给定角度倾斜。

警告

尚未实施。

参数:
  • obj ( ndarray )--3D离散对象。

  • rad ( scalar, optional )--定义倾斜角的极坐标半径。该值介于0和1之间,其中0表示不倾斜,1表示倾斜90度。倾斜角可以用反正弦(Rad)得到。

  • phi ( scalar, optional )-定义从旋转轴倾斜方向的角度(以度为单位)。0度表示矢状面旋转,90度表示冠状面旋转。

返回:

ndarray --倾斜的3D对象。