实现Resize
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
writer = SummaryWriter("logs")
img = Image.open("dataset/train/ants_image/0013035.jpg")
# Resize
print(img.size)
trans_resize = transforms.Resize((512, 512))
# PIL.img 经过resize——> PIL.img_resize
img_resize = trans_resize(img)
# 得到PIL类型的img,无法使用tensorboard显示,把img_resize变成tensor类型
trans_totensor = transforms.ToTensor()
img_resize = trans_totensor(img_resize)
writer.add_image("Resize", img_resize, 0)
writer.close()
结果
Compose()的使用
Compose()中的参数需要是一个列表,Python中,列表的表示形式为 [数据1, 数据2,...],在Compose中,数据需要是 transforms类型,所以得到,Compose([transforms参数1,transforms参数2,...])。
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
writer = SummaryWriter("logs")
img = Image.open("dataset/train/ants_image/0013035.jpg")
#Compose
trans_totensor = transforms.ToTensor()
trans_resize_2 = transforms.Resize(512)
#PIL ——> PIL ——> tensor
trans_compose = transforms.Compose([trans_resize_2, trans_totensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize",img_resize_2, 1)
writer.close()
结果
RandomCrop()的使用
随机裁剪
可以设置宽高:transforms.RandomCrop((400,500))
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
writer = SummaryWriter("logs")
img = Image.open("dataset/train/ants_image/0013035.jpg")
# RandomCrop
trans_random = transforms.RandomCrop(512)
trans_totensor = transforms.ToTensor()
trans_compose_2 = transforms.Compose([trans_random, trans_totensor])
for i in range(10):
img_crop = trans_compose_2(img)
writer.add_image("RandomCrop", img_crop, i)
writer.close()