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.Tensor或TVTensor(例如Image、Video、BoundingBoxes等),它可以具有任意數量的前導批次維度。例如,影像可以具有[..., C, H, W]的形狀。邊界框可以具有[..., 4]的形狀。- 引數:
degrees (sequence 或 number) – 選擇角度的範圍。如果 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 (sequence, optional) –
可選的旋轉中心,(x, y)。原點是左上角。預設是影像的中心。
注意
理論上,當
expand=True時,設定center沒有影響,因為影像中心將成為旋轉中心。然而,在實踐中,由於數值精度問題,與一開始就使用影像中心相比,這可能導致結果影像大小出現一個畫素的差異。因此,當設定expand=True時,最好將center=None(預設值)。fill (number 或 tuple 或 dict, optional) – 當
padding_mode為 constant 時使用的畫素填充值。預設為 0。如果為長度為 3 的元組,則分別用於填充 R、G、B 通道。填充值也可以是對映資料型別到填充值的字典,例如fill={tv_tensors.Image: 127, tv_tensors.Mask: 0},其中Image將用 127 填充,Mask將用 0 填充。
使用
RandomRotation的示例