perspective¶
- paddle.vision.transforms. perspective ( img, startpoints, endpoints, interpolation='nearest', fill=0 ) [源代码] ¶
对图像进行透视变换。
参数¶
img (PIL.Image|numpy.ndarray|paddle.Tensor) - 输入图像。
startpoints (list(list(float))) - 在原图上的四个角(左上、右上、右下、左下)的坐标。
endpoints (list(list(float))) - 在变换后的图上的四个角(左上、右上、右下、左下)的坐标。
- 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 ,如果只设定一个数字则所有通道上像素值均为该值。
返回¶
PIL.Image 或 numpy ndarray 或 paddle.Tensor
,透视变换后的图像。
代码示例¶
import paddle
from paddle.vision.transforms import functional as F
fake_img = paddle.randn((3, 256, 300)).astype(paddle.float32)
startpoints = [[0, 0], [33, 0], [33, 25], [0, 25]]
endpoints = [[3, 2], [32, 3], [30, 24], [2, 25]]
perspectived_img = F.perspective(fake_img, startpoints, endpoints)
print(perspectived_img.shape)