1.Transforms可以对训练图像进行预处理,以提高模型的稳定性,提高泛化能力。其中包含:
中心裁剪、数据标准化、缩放、裁剪、旋转、仿射、反转、填充、噪声添加、灰度变换、线性变换、亮度饱和度以及对比度变换等。
所处理的图像用tensorboard进行显示,代码如下:
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
writer = SummaryWriter("logs")
imgPath = "D:/Windows_temp/fengbo/Pictures/win7-006.jpg"
img = Image.open(imgPath)
#第一个 ToTensor
trans_toTensor = transforms.ToTensor()
imgTensor = trans_toTensor(img)
print(imgTensor[0,0,0])
writer.add_image("ToTensor",imgTensor,0)
#第二个 Normalize
trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm = trans_norm(imgTensor) #输入必须是tensor
print(img_norm[0][0][0])
#Resize
print(img.size)
trans_size = transforms.Resize((640,640),interpolation=Image.BILINEAR)
imgResize = trans_size(img)
imgResizeTensor = trans_toTensor(imgResize)
writer.add_image("resize",imgResizeTensor)
#进行多种变换
trans_resize_o= transforms.Resize((512,512))
trans_compose = transforms.Compo