【pytorch】|transforms.FiveCrop

常见的图像变换
这里总结一共有四大类

裁剪(Crop)

中心裁剪:transforms.CenterCrop
随机裁剪:transforms.RandomCrop
随机长宽比裁剪:transforms.RandomResizedCrop
上下左右中心裁剪:transforms.FiveCrop
上下左右中心裁剪后翻转,transforms.TenCrop

翻转和旋转(Flip and Rotation)

依概率p水平翻转:transforms.RandomHorizontalFlip(p=0.5)
依概率p垂直翻转:transforms.RandomVerticalFlip(p=0.5)
随机旋转:transforms.RandomRotation

图像变换(resize)transforms.Resize

标准化:transforms.Normalize
转为tensor,并归一化至[0-1]:transforms.ToTensor
填充:transforms.Pad
修改亮度、对比度和饱和度:transforms.ColorJitter
转灰度图:transforms.Grayscale
线性变换:transforms.LinearTransformation()
仿射变换:transforms.RandomAffine
依概率p转为灰度图:transforms.RandomGrayscale
将数据转换为PILImage:transforms.ToPILImage
将lambda应用作为变换:transforms.Lambda

对transforms操作,使数据增强更灵活

从给定的一系列transforms中选一个进行操作:transforms.RandomChoice(transforms),
给一个transform加上概率,依概率进行操作 :transforms.RandomApply(transforms, p=0.5)
将transforms中的操作随机打乱:

import torchvision
import torchvision.transforms as transform
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
import torch
img0=Image.open('imge.png')
resize = torchvision.transforms.Resize((224,224))
img0_r=resize(img0)
img1=transform.FiveCrop((112,112))(img0_r)
axs = plt.figure().subplots(1, 6)
axs[0].imshow(img0_r);axs[0].set_title('src');axs[0].axis('off')
axs[1].imshow(img1[0]);axs[1].set_title('1');axs[1].axis('off')
axs[2].imshow(img1[1]);axs[2].set_title('2');axs[2].axis('off')
axs[3].imshow(img1[2]);axs[3].set_title('3');axs[3].axis('off')
axs[4].imshow(img1[3]);axs[4].set_title('4');axs[4].axis('off')
axs[5].imshow(img1[4]);axs[5].set_title('5');axs[5].axis('off')
plt.show()

在这里插入图片描述

你可能感兴趣的:(pytorch学习,pytorch,python,机器学习)