class paddle.vision.transforms. RandomResizedCrop ( size, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333), interpolation='bilinear', keys=None ) [source]

Crop the input data to random size and aspect ratio. A crop of random size (default: of 0.08 to 1.0) of the original size and a random aspect ratio (default: of 3/4 to 1.33) of the original aspect ratio is made. After applying crop transfrom, the input data will be resized to given size.

  • size (int|list|tuple) – Target size of output image, with (height, width) shape.

  • scale (list|tuple, optional) – Scale range of the cropped image before resizing, relatively to the origin image. Default: (0.08, 1.0).

  • ratio (list|tuple, optional) – Range of aspect ratio of the origin aspect ratio cropped. Default: (0.75, 1.33)

  • interpolation (int|str, optional) – Interpolation method. Default: ‘bilinear’. when use pil backend, support method are as following: - “nearest”: Image.NEAREST, - “bilinear”: Image.BILINEAR, - “bicubic”: Image.BICUBIC, - “box”: Image.BOX, - “lanczos”: Image.LANCZOS, - “hamming”: Image.HAMMING when use cv2 backend, support method are as following: - “nearest”: cv2.INTER_NEAREST, - “bilinear”: cv2.INTER_LINEAR, - “area”: cv2.INTER_AREA, - “bicubic”: cv2.INTER_CUBIC, - “lanczos”: cv2.INTER_LANCZOS4

  • keys (list[str]|tuple[str], optional) – Same as BaseTransform. Default: None.

  • img(PIL.Image|np.ndarray|Paddle.Tensor): The input image with shape (H x W x C).

  • output(PIL.Image|np.ndarray|Paddle.Tensor): A cropped image.


A callable object of RandomResizedCrop.


>>> import numpy as np
>>> from PIL import Image
>>> from paddle.vision.transforms import RandomResizedCrop

>>> transform = RandomResizedCrop(224)
>>> fake_img = Image.fromarray((np.random.rand(300, 320, 3) * 255.).astype(np.uint8))
>>> fake_img = transform(fake_img)
>>> print(fake_img.size)
(224, 224)