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)[來源]¶
依角度旋轉輸入。
如果輸入是
torch.Tensor
或TVTensor
(例如Image
、Video
、BoundingBoxes
等),則它可以有任意數量的領先批次維度。例如,影像可以具有[..., C, H, W]
形狀。邊界框可以具有[..., 4]
形狀。- 參數:
degrees (序列 或 數字) – 要從中選取的角度範圍。如果 degrees 是數字而不是像 (min, max) 這樣的序列,則角度範圍將為 (-degrees, +degrees)。
interpolation (InterpolationMode, optional) – 期望的插值列舉,由
torchvision.transforms.InterpolationMode
定義。預設值為InterpolationMode.NEAREST
。如果輸入是 Tensor,則僅支援InterpolationMode.NEAREST
、InterpolationMode.BILINEAR
。也接受對應的 Pillow 整數常數,例如PIL.Image.BILINEAR
。expand (bool, optional) – 可選的擴展旗標。如果為 true,則擴展輸出,使其足夠大以容納整個旋轉影像。如果為 false 或省略,則使輸出影像與輸入影像大小相同。請注意,expand 旗標假設繞中心旋轉 (請參閱以下註釋) 且無平移。
center (序列, optional) –
可選的旋轉中心,(x, y)。原點是左上角。預設值是影像的中心。
註釋
理論上,如果
expand=True
,則設定center
無效,因為影像中心將成為旋轉中心。然而,實際上,由於數值精度,與一開始就使用影像中心相比,這可能會導致結果影像大小相差一個像素。因此,當設定expand=True
時,最好將center=None
(預設值) 保持不變。fill (數字 或 tuple 或 dict, optional) – 當
padding_mode
為常數時使用的像素填充值。預設值為 0。如果長度為 3 的 tuple,則分別用於填充 R、G、B 通道。填充值也可以是將資料類型對應到填充值的字典,例如fill={tv_tensors.Image: 127, tv_tensors.Mask: 0}
,其中Image
將填充為 127,而Mask
將填充為 0。
使用
RandomRotation
的範例