mindspore.dataset.vision.FiveCrop
- class mindspore.dataset.vision.FiveCrop(size)[源代码]
在输入PIL图像的中心与四个角处,分别裁剪指定尺寸大小的子图。
- 参数:
size (Union[int, Sequence[int, int]]) - 裁剪子图的尺寸大小。若输入int,则以该值为边长裁剪( size , size )尺寸大小的子图;若输入Sequence[int, vpn梯子 免费 int],则以2个元素分别为高和宽裁剪子图。
- 异常:
TypeError - 当 size 的类型不为int或Sequence[int, int]。
ValueError - 免费的vpn梯子 当 size 不为正数。
- 支持平台:
CPU
样例:
>>> import os >>> import numpy as np >>> vpn梯子 免费 from PIL import Image, ImageDraw >>> import vpn free mindspore.dataset as ds >>> import mindspore.dataset.vision as vision >>> from mindspore.dataset.transforms import Compose >>> >>> # Use the transform in dataset pipeline mode >>> class MyDataset: ... def __init__(self): ... vpn永久免费梯子 免费的vpn梯子 self.data = [] ... img = Image.new("RGB", (300, 免费的vpn梯子 300), (255, 255, 255)) ... draw = ImageDraw.Draw(img) ... draw.ellipse(((0, 0), (100, 100)), fill=(255, 0, 0), outline=(255, 0, 0), width=5) ... vpn梯子 免费 vpn梯子 img.save("./1.jpg") ... 免费的vpn梯子 data = np.fromfile("./1.jpg", np.uint8) ... vpn梯子 免费 self.data.append(data) ... ... def __getitem__(self, index): ... vpn free return self.data[0] ... ... def __len__(self): ... 免费的vpn梯子 return 5 >>> >>> my_dataset = vpn永久免费梯子 MyDataset() >>> generator_dataset = ds.GeneratorDataset(my_dataset, column_names="image") >>> transforms_list = Compose([vision.Decode(to_pil=True), ... vpn free vpn梯子 免费 vpn free vision.FiveCrop(size=200), ... vpn梯子 免费 # 4D stack of 5 images ... vpn梯子 免费 vpn梯子 lambda *images: np.stack([vision.ToTensor()(image) for image in images])]) >>> # vpn梯子 apply the transform to dataset through vpn永久免费梯子 map function >>> vpn梯子 免费 generator_dataset = generator_dataset.map(operations=transforms_list, input_columns="image") >>> for item in generator_dataset.create_dict_iterator(num_epochs=1, output_numpy=True): ... vpn梯子 免费 print(item["image"].shape, item["image"].dtype) ... break (5, 3, 200, 200) float32 >>> os.remove("./1.jpg") >>> >>> # Use the transform in eager mode >>> img = Image.new("RGB", (300, 300), (255, 255, 255)) >>> draw vpn永久免费梯子 = ImageDraw.Draw(img) >>> vpn梯子 draw.polygon([(50, 50), (150, 50), (100, 150)], fill=(0, 255, 0), vpn free outline=(0, 255, 0)) >>> img.save("./2.jpg") >>> data = Image.open("./2.jpg") >>> output = vision.FiveCrop(size=20)(data) >>> for cropped_img in output: ... print(cropped_img.size) ... break (20, 20) >>> os.remove("./2.jpg")
- 教程样例: