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], Optional[Union[int, float, Sequence[int], Sequence[float]]]]] = 0)[source]¶
[BETA] Rotate the input by angle.
Note
The RandomRotation transform is in Beta stage, and while we do not expect disruptive breaking changes, some APIs may slightly change according to user feedback. Please submit any feedback you may have in this issue: https://github.com/pytorch/vision/issues/6753.
If the input is a
torch.Tensor
or aTVTensor
(e.g.Image
,Video
,BoundingBoxes
etc.) it can have arbitrary number of leading batch dimensions. For example, the image can have[..., C, H, W]
shape. A bounding box can have[..., 4]
shape.- Parameters:
degrees (sequence or number) – Range of degrees to select from. If degrees is a number instead of sequence like (min, max), the range of degrees will be (-degrees, +degrees).
interpolation (InterpolationMode, optional) – Desired interpolation enum defined by
torchvision.transforms.InterpolationMode
. Default isInterpolationMode.NEAREST
. If input is Tensor, onlyInterpolationMode.NEAREST
,InterpolationMode.BILINEAR
are supported. The corresponding Pillow integer constants, e.g.PIL.Image.BILINEAR
are accepted as well.expand (bool, optional) – Optional expansion flag. If true, expands the output to make it large enough to hold the entire rotated image. If false or omitted, make the output image the same size as the input image. Note that the expand flag assumes rotation around the center (see note below) and no translation.
center (sequence, optional) –
Optional center of rotation, (x, y). Origin is the upper left corner. Default is the center of the image.
Note
In theory, setting
center
has no effect ifexpand=True
, since the image center will become the center of rotation. In practice however, due to numerical precision, this can lead to off-by-one differences of the resulting image size compared to using the image center in the first place. Thus, when settingexpand=True
, it’s best to leavecenter=None
(default).fill (number or tuple or dict, optional) – Pixel fill value used when the
padding_mode
is constant. Default is 0. If a tuple of length 3, it is used to fill R, G, B channels respectively. Fill value can be also a dictionary mapping data type to the fill value, e.g.fill={tv_tensors.Image: 127, tv_tensors.Mask: 0}
whereImage
will be filled with 127 andMask
will be filled with 0.
Examples using
RandomRotation
:Illustration of transforms