mindspore.dataset.vision.py_transforms.RandomCrop

class mindspore.dataset.vision.py_transforms.RandomCrop(size, padding=None, pad_if_needed=False, fill_value=0, padding_mode=Border.CONSTANT)[源代码]

在输入PIL图像上的随机位置,裁剪指定尺寸大小的子图。

参数:

  • size (Union[int, Sequence[int, int]]) - 裁剪子图的尺寸大小。若输入int,则以该值为边长裁剪( size , size )尺寸大小的子图;若输入Sequence[int, int],则以2个元素分别为高和宽裁剪子图。

  • padding (Union[int, Sequence[int, int], Sequence[int, int, int, int]],可选) - 图像各边填充的像素数。指定该参数后,将在随机裁剪前对图像进行填充。若输入int,将以该值对所有边框进行填充;若输入Sequence[int, int],将以第一个值填充左/上边框,第二个值填充右/下边框;若输入Sequence[int, int, int, int],将分别用于填充左、上、右和下边框。默认值:None,表示不进行填充。

  • pad_if_needed (bool,可选) - 当图像任意边小于指定裁剪尺寸大小时,是否进行填充。默认值:False,表示不进行填充。

  • fill_value (Union[int, tuple[int, int, int]],可选) - 用于填充边框的像素值,仅当 padding_mode 为 Border.CONSTANT 时生效 。若输入int,将以该值填充RGB通道;若输入tuple[int, int, int],将分别用于填充R、G、B通道。默认值:0。

  • padding_mode (Border,可选) - 填充方式,取值可为 Border.CONSTANT、Border.EDGE、Border.REFLECT 或 Border.SYMMETRIC。默认值:Border.CONSTANT。

    • Border.CONSTANT:使用常量值进行填充。

    • Border.EDGE:使用各边的边界像素值进行填充。

    • Border.REFLECT:以各边的边界为轴进行镜像填充,忽略边界像素值。

    • Border.SYMMETRIC:以各边的边界为轴进行对称填充,包括边界像素值。

异常:

  • TypeError - 当 size 的类型不为int或Sequence[int, int]。

  • TypeError - 当 padding 的类型不为int、Sequence[int, int]或Sequence[int, int, int, int]。

  • TypeError - 当 pad_if_needed 的类型不为bool。

  • TypeError - 当 fill_value 的类型不为int或tuple[int, int, int]。

  • TypeError - 当 padding_mode 的类型不为 mindspore.dataset.vision.Border

  • ValueError - 当 size 不为正数。

  • ValueError - 当 padding 为负数。

  • ValueError - 当 fill_value 取值不在[0, 255]范围内。

支持平台:

CPU

样例:

>>> from mindspore.dataset.transforms.py_transforms import Compose
>>>
>>> transforms_list = Compose([py_vision.Decode(),
...                            py_vision.RandomCrop(224),
...                            py_vision.ToTensor()])
>>> # apply the transform to dataset through map function
>>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
...                                                 input_columns="image")