【从零学习PyTorch】 transfrom之十种图像变化的方法和三种对transform的操作方法


本内容主要是展示常用的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)

扫描二维码关注公众号,回复: 9831046 查看本文章
  • 仿射变换

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中的顺序随机打乱
发布了78 篇原创文章 · 获赞 14 · 访问量 9715

猜你喜欢

转载自blog.csdn.net/qq_34107425/article/details/104139272