RandomCrop

class paddle.vision.transforms. RandomCrop ( size, padding=None, pad_if_needed=False, fill=0, padding_mode='constant', keys=None ) [源代码]

在随机位置裁剪输入的图像。

参数

  • size (sequence|int) - 裁剪后的图片大小。如果 size 是一个 int 值,而不是(h, w)这样的序列,那么会做一个方形的裁剪(size, size)。

  • padding (int|sequence,可选) - 对图像四周外边进行填充,如果提供了长度为 4 的序列,则将其分别用于填充左边界,上边界,右边界和下边界。默认值:None,不填充。

  • pad_if_needed (boolean,可选) - 如果裁剪后的图像小于期望的大小时,是否对裁剪后的图像进行填充,以避免引发异常,默认值:False,保持初次裁剪后的大小,不填充。

  • fill (float|tuple,可选) - 用于填充的像素值。仅当 padding_mode 为 constant 时参数值有效。默认值:0。如果参数值是一个长度为 3 的元组,则会分别用于填充 R,G,B 通道。

  • padding_mode (string,可选) - 填充模式。支持:constant, edge, reflect 或 symmetric。默认值:constant。constant 表示使用常量值进行填充,该值由 fill 参数指定。edge 表示使用图像边缘像素值进行填充。reflect 表示使用原图像的镜像值进行填充(不使用边缘上的值);比如:使用该模式对 [1, 2, 3, 4] 的两端分别填充 2 个值,结果是 [3, 2, 1, 2, 3, 4, 3, 2]。symmetric 表示使用原图像的镜像值进行填充(使用边缘上的值);比如:使用该模式对 [1, 2, 3, 4] 的两端分别填充 2 个值,结果是 [2, 1, 1, 2, 3, 4, 4, 3]。

  • keys (list[str]|tuple[str],可选) - 与 BaseTransform 定义一致。默认值:None。

形状

  • img (PIL.Image|np.ndarray|Paddle.Tensor) - 输入的图像数据,数据格式为 HWC

  • output (PIL.Image|np.ndarray|Paddle.Tensor) - 返回随机裁剪后的图像数据。

返回

计算 RandomCrop 的可调用对象。

代码示例

import paddle
from paddle.vision.transforms import RandomCrop
transform = RandomCrop(224)

fake_img = paddle.randint(0, 255, shape=(3, 324,300), dtype = 'int32')
print(fake_img.shape) # [3, 324, 300]

crop_img = transform(fake_img)
print(crop_img.shape) # [3, 224, 224]