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
样例:
>>> import mindspore.dataset as ds >>> import mindspore.dataset.vision as vision >>> 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 = ds.ImageFolderDataset("/path/to/image_folder_dataset_directory") >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list, ... input_columns="image")
- 教程样例: