cupyx.scipy.ndimage.affine_transform#

cupyx.scipy.ndimage.affine_transform(input, matrix, offset=0.0, output_shape=None, output=None, order=3, mode='constant', cval=0.0, prefilter=True, *, texture_memory=False)[source]#

应用仿射变换。

给定输出图像像素索引向量 o,像素值由输入图像在位置 cupy.dot(matrix, o) + offset 处的值确定。

参数:
  • input (cupy.ndarray) – 输入数组。

  • matrix (cupy.ndarray) –

    逆坐标变换矩阵,将输出坐标映射到输入坐标。如果 ndiminput 的维数,给定的矩阵必须具有以下形状之一:

    • (ndim, ndim):每个输出坐标的线性变换矩阵。

    • (ndim,):假定 2D 变换矩阵是对角矩阵,对角线由给定值指定。

    • (ndim + 1, ndim + 1):假定使用齐次坐标指定变换。在这种情况下,传递给 offset 的任何值都将被忽略。

    • (ndim, ndim + 1):同上,但齐次变换矩阵的底行始终是 [0, 0, ..., 1],可以省略。

  • offset (floatsequence) – 应用变换的数组偏移量。如果为浮点数,offset 对每个轴都相同。如果为序列,offset 应包含每个轴的一个值。

  • output_shape (tuple of ints) – 形状元组。

  • output (cupy.ndarraydtype) – 放置输出的数组,或返回数组的数据类型。

  • order (int) – 样条插值的阶数,默认为 3。必须在 0-5 范围内。

  • mode (str) – 边界外的点根据给定模式填充('constant', 'nearest', 'mirror', 'reflect', 'wrap', 'grid-mirror', 'grid-wrap', 'grid-constant''opencv')。

  • cval (scalar) – 如果 mode='constant'mode='opencv',用于输入边界外的点的值。默认为 0.0

  • prefilter (bool) – 确定在插值之前是否使用 spline_filter 对输入数组进行预过滤。默认为 True,如果 order > 1,将创建一个临时的 float64 数组存储过滤后的值。如果设置为 False,除非输入已经预过滤(例如,它是对原始输入调用 spline_filter 的结果),否则如果 order > 1,输出将略微模糊。

  • texture_memory (bool) –

    如果为 True,使用 GPU 纹理内存。仅支持:

    • 输入为 2D 和 3D float32 数组

    • (ndim + 1, ndim + 1) 齐次 float32 变换

      矩阵

    • mode='constant'mode='nearest' 模式

    • order=0 (最近邻) 和 order=1 (线性

      插值)

    • NVIDIA CUDA GPU

返回:

变换后的输入。如果给定参数 output,则返回 None

返回类型:

cupy.ndarray 或 None