tomopy.misc.corr

用于数据校正和屏蔽功能的模块。

Functions:

adjust_range(arr[, dmin, dmax])

更改数组中的值的动态范围。

circ_mask(arr, axis[, ratio, val, ncore])

将圆形蒙版应用于3D阵列。

gaussian_filter(arr[, sigma, order, axis, ncore])

沿指定的轴向对3D阵列应用高斯滤波。

median_filter(arr[, size, axis, ncore])

沿指定轴向3D阵列应用中值滤波。

median_filter_cuda(arr[, size, axis])

在GPU支持下,沿0轴对3D阵列应用中值滤波。

median_filter_nonfinite(arr[, size, callback])

使用在位2D中值过滤器从3D数组中删除非限定值。

sobel_filter(arr[, axis, ncore])

将Sobel滤镜应用于沿指定轴的3D数组。

remove_nan(arr[, val, ncore])

将数组中的NaN值替换为给定值。

remove_neg(arr[, val, ncore])

将数组中的负值替换为给定值。

remove_outlier(arr, dif[, size, axis, ...])

通过沿指定维度分块并沿其他维度执行(N-1)维中值滤波,从N维数组中去除高强度亮点。

remove_outlier_cuda(arr, dif[, size, axis])

使用GPU从3D阵列中沿轴0维去除高强度亮点。

remove_ring(rec[, center_x, center_y, ...])

从重建的域中的图像中去除环形伪影。

tomopy.misc.corr.adjust_range(arr, dmin=None, dmax=None)[源代码]

更改数组中的值的动态范围。

参数:
  • arr ( ndarray )--输入数组。

  • dmin, dmax ( float, optional )--要重新调整数据比例的最小值和最大值。

返回:

ndarray --输出数组。

tomopy.misc.corr.circ_mask(arr, axis, ratio=1, val=0.0, ncore=None)[源代码]

将圆形蒙版应用于3D阵列。

参数:
  • arr ( ndarray )--任意3D数组。

  • axis ( int )--将沿其执行遮罩的轴。

  • ratio ( int, optional )--蒙版直径(以像素为单位)与沿给定轴的最小边缘大小之比。

  • val ( int, optional )--遮罩区域的值。

返回:

ndarray --掩码数组。

tomopy.misc.corr.enhance_projs_aps_1id(imgstack, median_ks=5, ncore=None)[源代码]

对APS 1ID采集的弱对比度投影图像进行增强

该滤波器使用中值滤光器(将来将改用增强型递归中值滤光器,ERMF)进行去噪,并使用直方图均衡化进行动态范围调整以显示细节。

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

  • median_ks ( int, optional )--用于局部噪声抑制的2D中值滤波核大小

  • ncore ( int, optional )--用于加速的核心数量

返回:

ndarray --3D增强图像堆栈。

tomopy.misc.corr.gaussian_filter(arr, sigma=3, order=0, axis=0, ncore=None)[源代码]

沿指定的轴向对3D阵列应用高斯滤波。

参数:
  • arr ( ndarray )--输入数组。

  • sigma ( scalar or sequence of scalars )--高斯核的标准差。对于每个轴,高斯过滤器的标准偏差以序列或单个数字的形式给出,在这种情况下,所有轴的标准偏差都是相等的。

  • order ( {0, 1, 2, 3} or sequence from same set, optional )--过滤器沿每个轴的顺序以整数序列或单个数字的形式给出。阶数为0对应于高斯核的卷积。1、2或3的阶数对应于与高斯的一阶、二阶或三阶导数的卷积。不实现更高阶导数

  • axis ( int, optional )--沿其执行中值滤波的轴。

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

返回:

ndarray --与输入形状相同的3D数组。

tomopy.misc.corr.inpainter_morph(arr, mask, size=5, iterations=2, inpainting_type='random', axis=None, ncore=None)[源代码]

使用提供的遮罩(布尔值)将3D或2D形态内插器(外推器)应用到给定的缺失数据数组。文中给出了该算法的实现方法 [B10]

如果应用于3D层析数据,则可以通过在下面的参数列表中指定轴来使用应用于正弦图的2D模块。或者,可以使用具有对称3D内核(AXIS=NONE)的3D模块。对于3D数据,更推荐使用后者,因为它可以确保在每个方向上的强度过渡更加平滑。

在 1.15 版本加入.

参数:
  • arr ( ndarray )--输入具有缺失数据的Float32数据类型的3D或2D数组。

  • mask ( ndarray, bool )--与arr相同大小的布尔掩码数组。蒙版中的True值指示需要内嵌的区域。

  • size ( int, optional )--搜索窗口(内核)的大小。

  • iterations ( int, optional )--在内画区域被完全处理后的算法迭代。较大的数字通常会导致区域过度平滑,我们建议使用2。

  • inpainting_type ( str, optional )--修复技术的类型。在“平均值”、“中位数”或“随机”邻居选择之间进行选择。我们建议使用“随机”来最大限度地减少彩绘区域内强度的“溢出”。

  • axis ( int, optional )--沿该轴拆分数据,并在其余维度中执行修复。如果设置为 None 然后启用3D修复,建议用于3D数据。如果2D修复用于3D数据,则最好将其应用于正弦图形空间。

  • ncore ( int, optional )--将分配给作业的核心数量。如果未指定,将使用所有核心。

返回:

ndarray --Float32数据类型的内画数组。

抛出:

ValueError -- 如果输入数组不是Float32。如果输入掩码数组不是布尔的。如果修复类型不是“均值”、“中位数”或“随机数”。如果AXIS是2D输入数据的整数。如果轴超出了可接受的范围。

tomopy.misc.corr.median_filter(arr, size=3, axis=0, ncore=None)[源代码]

沿指定轴向3D阵列应用中值滤波。

参数:
  • arr ( ndarray )--输入数组。

  • size ( int, optional )--过滤器的大小。

  • axis ( int, optional )--沿其执行中值滤波的轴。

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

返回:

ndarray --中值滤波3D阵列。

tomopy.misc.corr.median_filter3d(arr, size=3, ncore=None)[源代码]

将三维中值滤波应用于三维阵列。

在 1.13 版本加入.

参数:
  • arr ( ndarray )--输入3维数组,数据类型为Float32或uint16。

  • size ( int, optional )--过滤器内核的大小。

  • ncore ( int, optional )--将分配给作业的核心数量。如果未指定,将使用所有核心。

返回:

ndarray --中值滤波3D数组,数据类型为Float32或uint16。

抛出:

ValueError -- 如果输入数组不是三维的。

tomopy.misc.corr.median_filter_cuda(arr, size=3, axis=0)[源代码]

在GPU支持下,沿0轴对3D阵列应用中值滤波。WinAllow适用于A6000,Tian X支持3到8

参数:
  • arr ( ndarray )--输入数组。

  • size ( int, optional )--过滤器的大小。

  • axis ( int, optional )--沿其执行中值滤波的轴。

返回:

ndarray --中值滤波3D阵列。

示例

导入Tomocuda Tomocuda.Remove_Outlier_Cuda(arr,dif,5)

有关安装和使用Tomocuda的更多信息,请访问https://github.com/kyuepublic/tomocuda获取更多信息

tomopy.misc.corr.median_filter_nonfinite(arr, size=3, callback=None)[源代码]

使用在位2D中值过滤器从3D数组中删除非限定值。

沿阵列的最后两个轴应用2D选择性中值滤波。

在 1.11 版本加入.

参数:
  • arr ( ndarray )--其中包含非限定值的3D数组。

  • size ( int, optional )--过滤器的大小。

  • callback ( func(total, description, unit) )--在每次内部循环迭代之后调用的函数。Total是循环迭代的次数。描述为“非有限中值滤波”。单位为‘prjs’。

返回:

ndarray --基于核大小定义的局部中值,删除了所有非限定值的校正3D数组。

抛出:

ValueError -- 如果筛选器遇到只包含非限定值的内核,则会引发ValueError,以便用户增加其内核大小。

tomopy.misc.corr.remove_nan(arr, val=0.0, ncore=None)[源代码]

将数组中的NaN值替换为给定值。

参数:
  • arr ( ndarray )--输入数组。

  • val ( float, optional )--要替换为数组中的NaN值的值。

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

返回:

ndarray --已更正数组。

tomopy.misc.corr.remove_neg(arr, val=0.0, ncore=None)[源代码]

将数组中的负值替换为给定值。

参数:
  • arr ( ndarray )--输入数组。

  • val ( float, optional )--数组中要替换为负值的值。

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

返回:

ndarray --已更正数组。

tomopy.misc.corr.remove_outlier(arr, dif, size=3, axis=0, ncore=None, out=None)[源代码]

通过沿指定维度分块并沿其他维度执行(N-1)维中值滤波,从N维数组中去除高强度亮点。

参数:
  • arr ( ndarray )--输入数组。

  • dif ( float )--离群值与数组的中值之间的预期差值。

  • size ( int )--中值过滤器的大小。

  • axis ( int, optional )--要沿其分块的轴。

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

  • out ( ndarray, optional )--结果的输出数组。如果与ARR相同,则流程将就地完成。

返回:

ndarray --已更正数组。

tomopy.misc.corr.remove_outlier1d(arr, dif, size=3, axis=0, ncore=None, out=None)[源代码]

使用沿指定轴的一维中值滤波,从阵列中去除高强度亮点。

参数:
  • arr ( ndarray )--输入数组。

  • dif ( float )--离群值与数组的中值之间的预期差值。

  • size ( int )--中值过滤器的大小。

  • axis ( int, optional )--沿其执行中值滤波的轴。

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

  • out ( ndarray, optional )--结果的输出数组。如果与ARR相同,则流程将就地完成。

返回:

ndarray --已更正数组。

tomopy.misc.corr.remove_outlier3d(arr, dif, size=3, ncore=None)[源代码]

有选择地将3D中值滤波应用于3D数组,以去除离群值。也被称为脱锌剂。

在 1.13 版本加入.

参数:
  • arr ( ndarray )--输入3维数组,数据类型为Float32或uint16。

  • dif ( float )--离群值与数组的中值之间的预期差值。

  • size ( int, optional )--过滤器内核的大小。

  • ncore ( int, optional )--将分配给作业的核心数量。如果未指定,将使用所有核心。

返回:

ndarray --DZINGED 3D数组,数据类型为Float32或uint16。

抛出:

ValueError -- 如果输入数组不是三维的。

tomopy.misc.corr.remove_outlier_cuda(arr, dif, size=3, axis=0)[源代码]

使用GPU从3D阵列中沿轴0维去除高强度亮点。

参数:
  • arr ( ndarray )--输入数组。

  • dif ( float )--离群值与数组的中值之间的预期差值。

  • size ( int )--中值过滤器的大小。

  • axis ( int, optional )--沿其执行异常值消除的轴。

返回:

ndarray --已更正数组。

示例

>>> import tomocuda
>>> tomocuda.remove_outlier_cuda(arr, dif, 5)

有关安装和使用Tomocuda的更多信息,请访问https://github.com/kyuepublic/tomocuda获取更多信息

tomopy.misc.corr.remove_ring(rec, center_x=None, center_y=None, thresh=300.0, thresh_max=300.0, thresh_min=-100.0, theta_min=30, rwidth=30, int_mode='WRAP', ncore=None, nchunk=None, out=None)[源代码]

从重建的域中的图像中去除环形伪影。对参数的描述需要更加明确。

参数:
  • arr ( ndarray )--重建数据数组

  • center_x ( float, optional )--旋转中心的横坐标位置

  • center_y ( float, optional )--旋转中心的坐标位置

  • thresh ( float, optional )--环形伪影导致的偏移量的最大值

  • thresh_max ( float, optional )--要过滤的图像部分的最大值

  • thresh_min ( float, optional )--映像到文件服务器的部分的最小值

  • theta_min ( int, optional )--大于该角度(度)两倍的特征将被视为环形伪像。温度必须低于180度。

  • rwidth ( int, optional )--要过滤的环的最大宽度(以像素为单位

  • int_mode ( str, optional )--‘WRAP’用于0度和360度的环绕,‘Reflect’用于0度和180度的反射边界。

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

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

  • out ( ndarray, optional )--结果的输出数组。如果与ARR相同,则流程将就地完成。

返回:

ndarray --修正后的重建数据

tomopy.misc.corr.sobel_filter(arr, axis=0, ncore=None)[源代码]

将Sobel滤镜应用于沿指定轴的3D数组。

参数:
  • arr ( ndarray )--输入数组。

  • axis ( int, optional )--沿其执行Sobel过滤的轴。

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

返回:

ndarray --与输入形状相同的3D数组。