RandomPerspective

class paddle.vision.transforms. RandomPerspective ( prob=0.5, distortion_scale=0.5, interpolation='nearest', fill=0, keys=None ) [源代码]

按照一定概率对图片进行透视变换。

参数

  • prob (float,可选) - 进行透视变换的概率,范围为 [0, 1] 。默认值: 0.5 。

  • distortion_scale (float,可选) - 图片失真程度的大小,范围为 [0, 1] 。默认值: 0.5 。

  • interpolation (str,可选) - 插值的方法。

    如果这个参数没有设定或者输入图像为单通道,则该参数会根据使用的后端,被设置为 PIL.Image.NEAREST 或者 cv2.INTER_NEAREST 。 当使用 pil 作为后端时, 支持的插值方法如下:

    • "nearest": Image.NEAREST

    • "bilinear": Image.BILINEAR

    • "bicubic": Image.BICUBIC

    当使用 cv2 作为后端时, 支持的插值方法如下:
    • "nearest": cv2.INTER_NEAREST

    • "bilinear": cv2.INTER_LINEAR

    • "bicubic": cv2.INTER_CUBIC

  • fill (int|list|tuple,可选) - 对图像扩展时填充的值。默认值: 0 ,如果只设定一个数字则所有通道上像素值均为该值。

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

形状

  • img (PIL.Image|np.ndarray|Paddle.Tensor) - 输入的图像数据,数据格式为 [H, W, C] 。

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

返回

计算 RandomPerspective 的可调用对象。

代码示例

>>> import paddle
>>> from paddle.vision.transforms import RandomPerspective

>>> transform = RandomPerspective(prob=1.0, distortion_scale=0.9)
>>> fake_img = paddle.randn((3, 200, 150)).astype(paddle.float32)
>>> fake_img = transform(fake_img)
>>> print(fake_img.shape)
[3, 200, 150]