本文介绍了几个常用的Transfroms的方法,供参考。
#Transforms的简单使用
#关注:
# 1)输入输出和功能,重点看官方文档
# 2)输入的参数是什么
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
writer=SummaryWriter(log_dir="logs")
img_path="beautiful_background.png"
img=Image.open(img_path)
#这里因为我输入的图片有四个维度,maybe多一个透明度,因此多一个步骤转为3维RGB格式
img = img.convert('RGB')
#transfroms中ToTensor的实例化与使用
totensor=transforms.ToTensor()
img_tensor=totensor(img)
#transfroms中Normalize的实例化与使用,这里对每个数值的操作其实为(x-0.5)/0.5
# print(img_tensor[0][0][0])
normalize=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_normalize=normalize(img_tensor)
# print(img_normalize[0][0][0])
#transfroms中Resize的实例化与使用,当前版本Resize的输入已经支持Tensor的数据类型
resize=transforms.Resize((612,612))
resize2=transforms.Resize((612)) #放一个相当于最小的边为这个值,等比例缩放
img_resize=resize(img_normalize)
img_resize2=resize2(img_normalize)
#最后时Compose的使用,结合随机裁剪
randomcrop=transforms.RandomCrop(size=(800))
compose=transforms.Compose([totensor,randomcrop])
for i in range(10):
img_randomcrop=compose(img)
writer.add_image("rand_crop",img_randomcrop,i)
#上述步骤的显示
writer.add_image("photo_change",img_tensor,0)
writer.add_image("photo_change",img_normalize,1)
writer.add_image("photo_change",img_resize,2)
writer.add_image("photo_change",img_resize2,3)
writer.close()