前言
接着我的上一篇介绍transforms的内容,所以我写了这一篇
一、使用步骤
1.代码
代码如下(示例):
from PIL import Image from torch.utils.tensorboard import SummaryWriter from torchvision import transforms #python的用法-》tensor数据类型 #通过transforms.ToTensor去看问题 writer=SummaryWriter("logs") #与第16行相对应 img_path="data/train/ants_image/0013035.jpg" img=Image.open(img_path) #根据图片路径,打开图片,将图片信息赋值给img变量 print(img) #打印图片信息 #1、transforms该如何使用(python) #ToTensor trans_totensor=transforms.ToTensor() #根据transforms下的ToTensor创建trans_totensor类 img_tensor=trans_totensor(img) #调用trans_totensor类,把之前放好的图片进行tensor转换 print(img_tensor) #打印tensor类型信息 writer.add_image("img_tensor",img_tensor) #用于可视化图片,返回torch.Tensor的图片 print(img_tensor[0][0][0]) #打印第一层第一行第一列 #2、Normalize trans_norm=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5]) #3个通道的平均值,3个通道的标准差 img_norm=trans_norm(img_tensor) #调用trans_norm类,把之前放好的图片进行归一化 print(img_norm[0][0][0]) #打印经过tensor类型转换和归一化后的第一层第一行第一列 writer.add_image("Normalize",img_norm,2) #用于可视化图片,返回归一化后的图片 print(img.size) #3、Resize trans_resize=transforms.Resize((512,512)) #根据transforms下的Resize创建trans_resize类,(512,512)是裁剪到多大 img_resize=trans_resize(img) #调用trans_resize类,把之前的图片进行resize #img PIL->resize->img_resize PIL print(img_resize) #resize后的图片格式是PIL img_resize=trans_totensor(img_resize) #把img_size PIL格式的转换成totensor格式,才能进行可视化 #img_resize PIL->totensor->img_resize totensor writer.add_image("Resize",img_resize,0) #用于可视化图片,返回resize后的图片 print(img_resize) #打印resize后的图片大小 #4、Compose-resize-2 一般用compose把多个步骤整合到一起 trans_resize_2=transforms.Resize(512) #如果大小是int,图像的较小边缘将与该数字匹配。 #PIL->PIL->tensor trans_compose=transforms.Compose([trans_resize_2,trans_totensor]) #compose的用法见官方文档,其实【】里就是序列,这里就是用compose将resize和totensor两个步骤整合到一起 img_resize_2=trans_compose(img) print(img_resize_2) writer.add_image("Compose-resize-2",img_resize_2,1) #5、RandomCrop trans_random=transforms.RandomCrop((500,500)) trans_compose_2=transforms.Compose([trans_random,trans_totensor]) for i in range(10): #随机裁剪10次 img_crop=trans_compose_2(img) writer.add_image("RandomCrop",img_crop,i)#用于可视化图片,返回随机裁剪后的图片 writer.close()
总结
借鉴小土堆的视频