transforms.Compose()
串联多个图片变换的操作。
transforms.Resize()
将图片转换到制定大小。
Resize(224) 将图片短边缩放到224,长边做等比缩放
Resize([224,224])将图片缩放到224*224
transforms.CenterCrop()
图片裁剪,从中心位置裁剪指定大小的图片。
transforms.ToTensor()
(1) transforms.ToTensor() 将numpy的ndarray或PIL.Image读的图片转换成形状为(C,H, W)的Tensor格式,且/255归一化到[0,1.0]之间
(2)通道的具体顺序与cv2读的还是PIL.Image读的图片有关系
cv2:(B,G,R)
PIL.Image:(R, G, B)
实际转化流程:
(1)img.tobytes() 将图片转化成内存中的存储格式
(2)torch.ByteStorage.rombuffer(img.tobytes()) 将字节以流的形输入,转化成一维的张量
(3)对张量进行reshape
(4)对张量进行transpose
(5)将当前张量的每个元素除以255
(6)输出张量
transforms.Normalize()
归一化,[0,1]范围经过Normalize(mean = (0.5, 0.5, 0.5), std = (0.5, 0.5, 0.5)),图片缩放到[-1,1]
公式:((0,1) -0.5)/0.5 = (-1,1)