mindspore.dataset.vision.Perspective
- class mindspore.dataset.vision.Perspective(start_points, end_points, interpolation=Inter.BILINEAR)[源代码]
对输入图像进行透视变换。
- 参数:
start_points (Sequence[Sequence[int, int]]) - 起始点坐标序列,包含四个两元素子序列,分别对应原图中四边形的 [左上、右上、右下、左下]。
end_points (Sequence[Sequence[int, int]]) - 目标点坐标序列,包含四个两元素子序列,分别对应目标图中四边形的 [左上、右上、右下、左下]。
interpolation (
Inter
,可选) - 插值方式,取值可为 Inter.BILINEAR、Inter.LINEAR、Inter.NEAREST、Inter.AREA、Inter.PILCUBIC、Inter.CUBIC 或 Inter.BICUBIC。默认值:Inter.BILINEAR。Inter.BILINEAR:双线性插值。
Inter.LINEAR:线性插值,与双线性插值相同。
Inter.NEAREST:最近邻插值。
Inter.BICUBIC:双三次插值。
Inter.CUBIC:三次插值,与双三次插值相同。
Inter.PILCUBIC:类Pillow实现的三次插值,只支持
numpy.ndarray
类型输入。Inter.AREA:像素区域插值,只支持
numpy.ndarray
类型输入。
- 异常:
TypeError - 如果 start_points 不是Sequence[Sequence[int, int]]类型。
TypeError - 如果 end_points 不是Sequence[Sequence[int, int]]类型。
TypeError - 当 interpolation 的类型不为
mindspore.dataset.vision.Inter
。RuntimeError - 如果输入图像的形状不是 <H, W> 或 <H, W, C>。
- 支持平台:
CPU
样例:
>>> from mindspore.dataset.transforms import Compose >>> from mindspore.dataset.vision import Inter >>> >>> start_points = [[0, 63], [63, 63], [63, 0], [0, 0]] >>> end_points = [[0, 32], [32, 32], [32, 0], [0, 0]] >>> transforms_list = Compose([vision.Decode(), ... vision.Perspective(start_points, end_points, Inter.BILINEAR)]) >>> # apply the transform to dataset through map function >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list, ... input_columns="image")