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) –
逆坐标变换矩阵,将输出坐标映射到输入坐标。如果
ndim
是input
的维数,给定的矩阵必须具有以下形状之一:(ndim, ndim)
:每个输出坐标的线性变换矩阵。(ndim,)
:假定 2D 变换矩阵是对角矩阵,对角线由给定值指定。(ndim + 1, ndim + 1)
:假定使用齐次坐标指定变换。在这种情况下,传递给offset
的任何值都将被忽略。(ndim, ndim + 1)
:同上,但齐次变换矩阵的底行始终是[0, 0, ..., 1]
,可以省略。
offset (float 或 sequence) – 应用变换的数组偏移量。如果为浮点数,
offset
对每个轴都相同。如果为序列,offset
应包含每个轴的一个值。output_shape (tuple of ints) – 形状元组。
output (cupy.ndarray 或 dtype) – 放置输出的数组,或返回数组的数据类型。
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.0prefilter (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