mindspore.dataset.vision.py_transforms.RandomAffine

class mindspore.dataset.vision.py_transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, resample=Inter.NEAREST, fill_value=0)[source]

Apply random affine transformation to the input PIL Image.

Parameters
  • degrees (Union[int, float, sequence]) – Range of degrees to select from. If degrees is a number, the range will be (-degrees, degrees). If degrees is a sequence, it should be in shape of (min, max).

  • translate (sequence, optional) – Maximum absolute fraction sequence in shape of (tx, ty) for horizontal and vertical translations. The horizontal and vertical shifts are randomly selected in the range (-tx * width, tx * width) and (-ty * height, ty * height) respectively. (default=None, no translation will be applied).

  • scale (sequence, optional) – Scaling factor interval (default=None, keep original scale).

  • shear (Union[int, float, sequence], optional) – Range of shear factor to select from. If shear is an integer, a shear parallel to the X axis in the range (-shear, shear) will be applied. If shear is a sequence of length 2, a shear parallel to the X axis in the range (shear[0], shear[1]) will be applied. If shear is a sequence of length 4, a shear parallel to the X axis in the range (shear[0], shear[1]) and a shear parallel to the Y axis in the range (shear[2], shear[3]) will be applied. (default=None, no shear will be applied).

  • resample (Inter, optional) –

    An optional resampling filter (default=Inter.NEAREST). If the PIL Image is in mode of “1” or “P”, it is set to Inter.NEAREST by default. It can be any of [Inter.BILINEAR, Inter.NEAREST, Inter.BICUBIC].

    • Inter.BILINEAR, bilinear interpolation.

    • Inter.NEAREST, nearest-neighbor interpolation.

    • Inter.BICUBIC, bicubic interpolation.

  • fill_value (Union[int, tuple], optional) – Pixel fill value for the area outside the transformed image (default=0). If fill_value is an integer, it is used for all RGB channels. If fill_value is a tuple of length 3, it is used to fill R, G, B channels respectively. Only supported with Pillow version > 5.0.0.

Raises
  • TypeError – If degrees is not of type integer, float or sequence.

  • TypeError – If translate is not of type sequence.

  • TypeError – If scale is not of type sequence.

  • TypeError – If shear is not of type integer, float or sequence.

  • TypeError – If resample is not of type Inter.

  • TypeError – If fill_value is not of type integer or tuple of integer.

  • ValueError – If degrees is negative.

  • ValueError – If translate is not in range [-1.0, 1.0].

  • ValueError – If scale is negative.

  • ValueError – If shear is not positive.

  • RuntimeError – If given tensor shape is not <H, W> or <H, W, C>.

Supported Platforms:

CPU

Examples

>>> from mindspore.dataset.transforms.py_transforms import Compose
>>> transforms_list = Compose([py_vision.Decode(),
...                            py_vision.RandomAffine(degrees=15, translate=(0.1, 0.1), scale=(0.9, 1.1)),
...                            py_vision.ToTensor()])
>>> # apply the transform to dataset through map function
>>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
...                                                 input_columns="image")