transform函数介绍
学习pytroch中遇到了许多函数,为了以后方便复习,记录一下,如果想要进一步了解可以去看官方文档https://pytorch.org/vision/stable/transforms.html
有大佬写了中文版https://github.com/zergtant/pytorch-handbook
transform函数提供对图像的变换,包括尺寸裁剪(resize),归一化等.
pytroch中提供函数transform,只需要从torchision导入即可使用。 torchvision 工具库是 pytorch 框架下常用的图像处理包,可以用来生成图片和视频数据集(torchvision.datasets),做一些图像预处理(torchvision.transforms),导入预训练模型(torchvision.models),以及生成图和保存图像(torchvision.utils)
from torchvision import transforms
1.Compose()
功能作用:
将不同的transforms变换结合在一起,先进行第一个transform变换,后进行第二个transforms变换
transform1 = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor()]
)
2.ToTensor()
功能作用:
将图片转化为tensor张量
# ToTensor() 的使用
trans_totensor = transforms.ToTensor() # 返回一个ToTensor 对象
img_tensor = trans_totensor(img) # 将传入的图片转换成Tensor类型的图片并返回
writer.add_image("Tensor_img", img_tensor)
3. ToPILImage
功能作用:
Convert a tensor or an ndarray to PIL Image
调用方法:同上
4.Normalize
功能作用:
根据给定的均值和标准差归一化tensor图像
输入:mean: (mean[1],…,mean[n]) and std: (std[1],…,std[n]) for n
输出:output[channel] = (input[channel] - mean[channel]) / std[channel]
trans_norm = transforms.Normalize([0, 2, 1], [7, 6, 6])
img_norm = trans_norm(img_tensor)
5. Resize
功能作用:
调整图片大小
trans_resize = transforms.Resize((512, 512)) #创建Resize对象,输入参数
img_resize = trans_resize(img) #输入PIL image
6.RandomCrop()
功能作用:随机裁剪
# 6. RandomCrop() 随机裁剪 输入:PIL image 输出:PIL Image
trans_random = transforms.RandomCrop(200)
trans_compose_2 = transforms.Compose([trans_random, trans_totensor])
for i in range(10):
img_crop = trans_compose_2(img)
writer.add_image("trans_crop", img_crop, i)
参考资料
https://blog.csdn.net/qq_42806080/article/details/122662532