快捷方式

RandomRotation

class torchvision.transforms.v2.RandomRotation(degrees: Union[Number, Sequence], interpolation: Union[InterpolationMode, int] = InterpolationMode.NEAREST, expand: bool = False, center: Optional[list[float]] = None, fill: Union[int, float, Sequence[int], Sequence[float], None, dict[Union[type, str], Union[int, float, collections.abc.Sequence[int], collections.abc.Sequence[float], NoneType]] = 0)[源代码]

将输入旋转指定的角度。

如果输入是 torch.TensorTVTensor(例如 ImageVideoBoundingBoxes 等),它可以具有任意数量的前导批次维度。例如,图像可以具有 [..., C, H, W] 的形状。边界框可以具有 [..., 4] 的形状。

参数:
  • degrees (sequencenumber) – 选择角度的范围。如果 degrees 是数字而不是序列(例如 (min, max)),则角度范围将是 [-degrees, +degrees]。

  • interpolation (InterpolationMode, optional) – 由 torchvision.transforms.InterpolationMode 定义的期望的插值枚举。默认为 InterpolationMode.NEAREST。如果输入是 Tensor,则仅支持 InterpolationMode.NEARESTInterpolationMode.BILINEAR。也接受相应的 Pillow 整数常量,例如 PIL.Image.BILINEAR

  • expand (bool, optional) – 可选的扩展标志。如果为 True,则扩展输出以使其足够大以容纳整个旋转后的图像。如果为 False 或省略,则输出图像的大小与输入图像相同。请注意,expand 标志假定围绕中心旋转(见下文说明)且没有平移。

  • center (sequence, optional) –

    可选的旋转中心,(x, y)。原点是左上角。默认是图像的中心。

    注意

    理论上,当 expand=True 时,设置 center 没有影响,因为图像中心将成为旋转中心。然而,在实践中,由于数值精度问题,与一开始就使用图像中心相比,这可能导致结果图像大小出现一个像素的差异。因此,当设置 expand=True 时,最好将 center=None(默认值)。

  • fill (numbertupledict, optional) – 当 padding_mode 为 constant 时使用的像素填充值。默认为 0。如果为长度为 3 的元组,则分别用于填充 R、G、B 通道。填充值也可以是映射数据类型到填充值的字典,例如 fill={tv_tensors.Image: 127, tv_tensors.Mask: 0},其中 Image 将用 127 填充,Mask 将用 0 填充。

使用 RandomRotation 的示例

关键点上的变换

关键点上的变换

旋转边界框上的变换

旋转边界框上的变换

转换图示

转换图示
static get_params(degrees: list[float]) float[源代码]

获取用于随机旋转的 rotate 参数。

返回:

用于随机旋转的 rotate 的 angle 参数。

返回类型:

浮点数

make_params(flat_inputs: list[Any]) dict[str, Any][源代码]

用于覆盖自定义变换的方法。

请参阅 如何编写自己的 v2 变换

transform(inpt: Any, params: dict[str, Any]) Any[源代码]

用于覆盖自定义变换的方法。

请参阅 如何编写自己的 v2 变换

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源