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 或 int 列表, 可选, 默认值 = [0]) –
每个样本的输出大小提示,以字节为单位。
如果指定,则将预先分配驻留在 GPU 或页锁定主机内存中的操作符输出,以容纳此大小的样本批次。
dtype¶ (
nvidia.dali.types.DALIDataType
, 可选) –输出数据类型。
如果未设置,则使用输入类型。
fill_value¶ (float, 可选) –
用于填充源图像外部区域的值。
如果未指定值,则源坐标将被钳制,并且边框像素将被重复。
interp_type¶ (
nvidia.dali.types.DALIInterpType
, 可选, 默认值 = DALIInterpType.INTERP_LINEAR) – 使用的插值类型。inverse_map¶ (bool, 可选, 默认值 = True) – 如果给定的变换是目标到源的映射,则设置为
False
,否则设置为True
。matrix¶ (float 或 float 列表 或 float 的 TensorList, 可选, 默认值 = []) –
变换矩阵。
当
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, 可选, 默认值 = False) – 阻止操作符从图中删除,即使其输出未使用。
size¶ (float 或 float 列表 或 float 的 TensorList, 可选, 默认值 = []) –
输出大小,以像素/点为单位。
非整数大小将四舍五入到最接近的整数。 通道维度应排除在外(例如,对于 RGB 图像,指定
(480,640)
,而不是(480,640,3)
。