pytorch中的图像预处理操作
加载图像
读取图像
使用方法:
torchvision.datasets.ImageFolder()
class ImageFolder(root,transform=None,target_transform=None,loader=default_loader,is_valid_file=None)
root: 图像文件夹所在位置的上一级目录
transform: 对图像要做的操作,传入的是torchvision.transforms对象
loader: 图像加载方式,默认加载方式是RGB格式的PIL Image对象
is_valid_file: 检查图像是否损坏
PIL.Image模块
torchvision.transforms模块
函数名 | 参数 | 功能 |
---|---|---|
transforms.Compose() | transforms:将要进行的变换 | 把所有要进行的变换组合起来 |
transform.CenterCrop() | tuple(height,weight)或size,size的情况下裁剪出的为正方形 | 在原图像中心裁剪出指定大小的图像 |
transforms.RandomResizedCrop() | size:大小 | 先将原图片裁剪为随机大小和宽高比,再将其缩减为为指定大小的图片 |
transform.FiveCrop() | size | 将原PIL图片按中心和四角按指定的大小进行裁剪并得到五张图片 |
transform.TenCrop() | size,vertical_flip=False(or True) | 在FIveCrop的基础上进行翻转(默认为水平翻转)得到十张图片 |
transforms.RandomHorizontalFlip() | p | 对原始图像以给定的概率进行随机的水平翻转 |
transforms.ToTensor | 将PIL Image对象转换为torch.FloatTensor形式并进行归一化 | |
transforms.Normalize() | mean:均值;std:标准值 | 将tensor中的数据正则化,即output[channel]=(input[channel]-mean[channel])/std[channel] |