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]¶
按角度旋轉輸入。
如果輸入是
torch.Tensor或TVTensor(例如Image、Video、BoundingBoxes等),它可以有任意數量的 leading batch 維度。例如,影像可以具有[..., C, H, W]形狀。邊界框可以具有[..., 4]形狀。- 引數:
degrees (序列 或 數字) – 要選擇的角度範圍。如果 degrees 是數字而不是 (min, max) 這樣的序列,則角度範圍將是 [-degrees, +degrees]。
interpolation (InterpolationMode, 可選) – 由
torchvision.transforms.InterpolationMode定義的期望插值列舉。預設值為InterpolationMode.NEAREST。如果輸入是 Tensor,則僅支援InterpolationMode.NEAREST和InterpolationMode.BILINEAR。相應的 Pillow 整型常量,例如PIL.Image.BILINEAR也被接受。expand (bool, 可選) – 可選的擴充套件標誌。如果為 true,則擴充套件輸出使其足夠大以容納整個旋轉後的影像。如果為 false 或省略,則輸出影像的大小與輸入影像相同。請注意,expand 標誌假設圍繞中心旋轉(參見下面的注意)且沒有平移。
center (序列, 可選) –
可選的旋轉中心 (x, y)。原點是左上角。預設值為影像中心。
注意
理論上,如果
expand=True,設定center沒有效果,因為影像中心將成為旋轉中心。然而,在實踐中,由於數值精度問題,這可能導致結果影像尺寸與最初使用影像中心相比存在一個畫素的差異。因此,當設定expand=True時,最好保持center=None(預設)。fill (數字 或 元組 或 字典, 可選) – 當
padding_mode為 constant 時使用的畫素填充值。預設值為 0。如果是長度為 3 的元組,則分別用於填充 R、G、B 通道。填充值也可以是一個將資料型別對映到填充值的字典,例如fill={tv_tensors.Image: 127, tv_tensors.Mask: 0},其中Image將用 127 填充,Mask將用 0 填充。
使用
RandomRotation的示例