文章目录
本内容主要是展示常用的transform的操作,知道有这个操作,就可以针对性去研究如何使用。具体还是需要看API或者百度查找如何使用
Resize
class torchvision.transforms.Resize(size, interpoliation=2)
- 功能:重置图片的分辨率(大小)
- size:一般建议写成(height*weight)的形式
- interpolation:插值方法的选择,默认是PIL.Image.BILINEAR线性插值
Normalize
class torchvision.transforms.Normalize(mean,std)
- 功能:对数据按照通道进行标准化,先减去均值,然后除以标准差,这里面是hwchannel
ToTensor
class torchvision.transforms.ToTensor
- 功能:将PIL Image或者ndarray转化为tensor,并且归一化到[0,1]
- 归一化到【0,1】是直接除以255,并非上面的标准化
ToPILImage
class torchvision.transforms.ToPILImage(mode=None)
- 将tensor或者ndarray的数据转换为PILImage类的数据类型
- model为None的时候,默认是1通道,如果mode是3的时候,转换问RGB,如果是4,就是RGBA
Pad
class torchvision.transforms.Pad(padding. fill=0, padding_mode = 'constent')
- 功能:对图像进行填充
- padding:是填充多少个pixel,可以输入int,或者sequence。如果是int,就是上线左右都填充int,如果是两个数的sequence,就是第一个数是左右扩充多少,第二个数是上下扩充多少。如果四个数,就是左上右下扩充的多少
- fill:填充的值是什么,默认是0
- padding_mode:填充模式,默认constant,也可以选择edge,就是按照图片边缘的像素值来填充
ColorJitter
class torchvision.transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0)
- 功能:修改亮度,对比度,饱和度这样的
Grayscale
class torchvision.transforms.Grayscale(num_output_channels = 1)
- 功能:将图片转换为灰度图
- num_output_channels:默认是1,就是一般的灰度图,当时3的时候,就是r=g=b
LinearTransformation()
class torchvision.transforms.LinearTransformation(transformation_matrix)
- 功能:对矩阵进行线性变化,可以用白化处理
- 【白化处理】:一幅图像最终成像会受环境照明强度、物体反射、拍摄相机等多因素的影响。为了能获得图像中包含的那些不受外界影响的恒定信息,我们需要对图像进行白化处理。(图像白化(whitening)可用于对过度曝光或低曝光的图片进行处理,处理的方式就是改变图像的平均像素值为
0 ,改变图像的方差为单位方差 1。)一般为了去除这些因素的影响,我们将它的像素值转化成零均值和单位方差。
RandomAffine
class torchvision.transforms.RandomAffine(degree, translate=None,sacle=None,shear=None,resample=False, fillcolor=0)
- 仿射变换
RandomGrayscale
class torchvision.transforms.RandomGrayscale(p=0.1)
- 按照概率p改为灰度图
此外再加上三个对transform本身的操作
RandomChoice
class torchvision.transforms.RandomChoice(transforms)
- 从给定的一系列transform中选一个进行操作
RandomApply
class torchvision.transforms.RandomApply(transforms, p=0.5)
- 给一个transform加上概率,以一定概率执行该操作
RandomOrder
class torchvision.transforms.RandomOrder
- 将transform中的顺序随机打乱