transform预处理方法主要包括四大类:
1.Crop
2.Flip and Rotation
3.Resize
4.对transforms操作
crop
1. transforms.CenterCrop()
功能:从图像中心裁剪图片
• size:所需裁剪图片尺寸
2. transforms.RandomCrop(size,
padding=None,
pad_if_needed=False,
fill=0,
padding_mode='constant')
功能:从图片中随机裁剪出尺寸为size的图片
• size:所需裁剪图片尺寸
• padding:设置填充大小
为a:上下左右均填充a个像素
为(a, b):上下填充b个像素,左右填充a个像素
为(a, b, c, d):左,上,右,下分别填充a, b, c, d
• pad_if_need:若图像小于设定size,则填充
3. RandomResizedCrop(size,
scale=(0.08, 1.0),
ratio=(3/4, 4/3),
interpolation)
功能:随机大小、长宽比裁剪图片
• size:所需裁剪图片尺寸
• scale:随机裁剪面积比例, 默认(0.08, 1)
• ratio:随机长宽比,默认(3/4, 4/3)
• interpolation:插值方法
Flip and Rotation
1.RandomHorizontalFlip()
2.RandomVerticalFlip()
功能:依概率水平(左右)或垂直(上下)
翻转图片
• p:翻转概率
3.RandomRotation()
功能:随机旋转图片
Resize
transforms.Resize()
功能:重置图像分辨率
transforms.Pad(padding,fill=0,padding_mode='constant')
功能:对图片边缘进行填充
transforms.ColorJitter(brightness=0,contrast=0,saturation=0,hue=0)
功能:调整亮度、对比度、饱和度和色相
RandomGrayscale(num_output_channels,p=0.1)
功能:依概率将图片转换为灰度图
• num_ouput_channels:输出通道数,只能设1或3
• p:概率值,图像被转换为灰度图的概率
RandomAffine(degrees,
translate=None,
scale=None,
shear=None,
resample=False,
fillcolor=0)
功能:对图像进行仿射变换,仿射变换是二维的线性变换,由五种基本原子变换构成,分别是旋转、平移、缩放、错切和翻转
• degrees:旋转角度设置
• translate:平移区间设置,如(a, b), a设置宽,b设置高
• scale:缩放比例(以面积为单位)
• fill_color:填充颜色设置
transforms.Normalize(mean, std)
功能:对数据按通道进行标准化,即先减均值,再除以标准差
transforms.ToTensor()
功能:将PIL Image或者 ndarray 转换为tensor,并且归一化至[0-1] 注意事项:归一化至[0-1]是直接除以255,若自己的ndarray数据尺度有变化,则需要自行修改。
自定义transforms方法
transforms.Lambda(lambd)
lambda [arg1 [,arg2, … , argn]] : expression
transforms操作
transforms.RandomChoice([transforms1, transforms2, transforms3])
功能:从一系列transforms方法中随机挑选一个
transforms.RandomApply([transforms1, transforms2, transforms3], p=0.5)
功能:依据概率执行一组transforms操作
transforms.RandomOrder([transforms1, transforms2, transforms3])
功能:对一组transforms操作打乱顺序