nvidia.dali.fn.warp_affine#
- nvidia.dali.fn.warp_affine(__data, __mtx=None, /, *, bytes_per_sample_hint=[0], dtype=None, fill_value=None, interp_type=DALIInterpType.INTERP_LINEAR, inverse_map=True, matrix=[], preserve=False, size=[], device=None, name=None)#
对图像应用仿射变换。
此操作符支持体积数据。
- 支持的后端
‘cpu’
‘gpu’
- 参数:
- 关键字参数:
bytes_per_sample_hint¶ (int or list of int, optional, default = [0]) –
每个样本的输出大小提示(以字节为单位)。
如果指定,则驻留在 GPU 或页锁定主机内存中的操作符输出将被预先分配以适应此大小的样本批次。
dtype¶ (
nvidia.dali.types.DALIDataType
, optional) –输出数据类型。
如果未设置,则使用输入类型。
fill_value¶ (float, optional) –
用于填充源图像外部区域的值。
如果未指定值,则源坐标将被钳制,并且边界像素将被重复。
interp_type¶ (
nvidia.dali.types.DALIInterpType
, optional, default = DALIInterpType.INTERP_LINEAR) – 使用的插值类型。inverse_map¶ (bool, optional, default = True) – 如果给定的变换是目标到源的映射,则设置为
False
,否则为True
。matrix¶ (float or list of float or TensorList of float, optional, default = []) –
变换矩阵。
当
inverse_map
选项设置为 true(默认值)时,该矩阵表示目标到源的映射。使用值列表(M11, M12, M13, M21, M22, M23)
,此操作通过使用以下公式生成新图像dst(x,y) = src(M11 * x + M12 * y + M13, M21 * x + M22 * y + M23)
其中
[0, 0]
坐标表示第一个像素的角。如果
inverse_map
选项设置为 false,则矩阵表示源到目标的变换,并在应用上述公式之前将其反转。它等效于 OpenCV 的
warpAffine
操作,其中inverse_map
参数类似于WARP_INVERSE_MAP
标志。注意
除了此参数外,操作符还可以接受第二个位置输入,在这种情况下,矩阵可以放置在 GPU 上。
支持
per-frame
输入。output_dtype¶ (
nvidia.dali.types.DALIDataType
) –preserve¶ (bool, optional, default = False) – 即使操作符的输出未使用,也阻止将其从图中删除。
size¶ (float or list of float or TensorList of float, optional, default = []) –
输出大小,以像素/点为单位。
非整数大小将四舍五入为最接近的整数。通道维度应排除在外(例如,对于 RGB 图像,请指定
(480,640)
,而不是(480,640,3)
。