【深度之眼】【Pytorch打卡第4天】:各种transforms详解

【深度之眼】【Pytorch打卡第4天】:各种transforms详解
图像增强
裁剪
transforms.CenterCrop
transforms.RandomCrop
功能:从图⽚中随机裁剪出尺⼨为size的图⽚
· size:所需裁剪图⽚尺⼨ · padding:设置填充⼤⼩
当为a时,上下左右均填充a个像素
当为(a, b)时,上下填充b个像素,左右填充a个像素 当为(a, b, c, d)时,左,上,右,下分别填充a, b, c, d
· pad_if_need:若图像⼩于设定size,则填充
· padding_mode:填充模式,有4种模式
1、constant:像素值由fill设定
2、edge:像素值由图像边缘像素决定
3、reflect:镜像填充,最后⼀个像素不镜像,eg:[1,2,3,4] → [3,2,1,2,3,4,3,2]
4、symmetric:镜像填充,最后⼀个像素镜像,eg:[1,2,3,4] → [2,1,1,2,3,4,4,3]
· fill:constant时,设置填充的像素值
transforms.RandomResizedCrop
功能:随机⼤⼩、长宽⽐裁剪图⽚
· size:所需裁剪图⽚尺⼨
· scale:随机裁剪⾯积⽐例, 默认(0.08, 1)
· ratio:随机长宽⽐,默认(3/4, 4/3)
· interpolation:插值⽅法
PIL.Image.NEAREST
PIL.Image.BILINEAR
PIL.Image.BICUBIC
FiveCrop
TenCrop
功能:在图像的上下左右以及中⼼裁剪出尺⼨为size的5张图⽚,TenCrop对这5张图⽚进⾏⽔平或者垂直镜像获得10张图⽚。
· size:所需裁剪图⽚尺⼨
· vertical_flip:是否垂直翻转
翻转和旋转
RandomHorizontalFlip
RandomVerticalFlip
功能:依概率⽔平(左右)或垂直(上下) 翻转图⽚
· p:翻转概率
RandomRotation
功能:随机旋转图⽚
· degrees:旋转⾓度
当为a时,在(-a,a)之间选择旋转⾓度
当为(a, b)时,在(a, b)之间选择旋转⾓度
· resample:重采样⽅法
· expand:是否扩⼤图⽚
· center:旋转中⼼,默认是中⼼点
代码
train_transform = transforms.Compose([
transforms.Resize((224,224)),
# 1 CenterCrop
# transforms.CenterCrop(512),    # 512
# 2 RandomCrop
# transforms.RandomCrop(224, padding=16),
# transforms.RandomCrop(224, padding=(16, 64)),
# transforms.RandomCrop(224, padding=16, fill=(255, 0, 0)),
# transforms.RandomCrop(512, pad_if_needed=True),  # pad_if_needed=True
# transforms.RandomCrop(224, padding=64, padding_mode='edge'),
# transforms.RandomCrop(224, padding=64, padding_mode='reflect'),
# transforms.RandomCrop(1024, padding=1024, padding_mode='symmetric'),
# 3 RandomResizedCrop
# transforms.RandomResizedCrop(size=224, scale=(0.5, 0.5)),
# 4 FiveCrop
# transforms.FiveCrop(112),
# transforms.Lambda(lambda crops: torch.stack([(transforms.ToTensor()(crop)) for crop in crops])),
# 5 TenCrop
# transforms.TenCrop(112, vertical_flip=False),
# transforms.Lambda(lambda crops: torch.stack([(transforms.ToTensor()(crop)) for crop in crops])),
# 1 Horizontal Flip
# transforms.RandomHorizontalFlip(p=1),
# 2 Vertical Flip
# transforms.RandomVerticalFlip(p=0.5),
# 3 RandomRotation
# transforms.RandomRotation(90),
# transforms.RandomRotation((90), expand=True),
# transforms.RandomRotation(30, center=(0, 0)),
# transforms.RandomRotation(30, center=(0, 0), expand=True),  # expand only for center rotation
transforms.ToTensor(),
transforms.Normalize(norm_mean, norm_std),
])
图像变换
Pad
功能:对图⽚边缘进⾏填充
· padding:设置填充⼤⼩ 当为a时,上下左右均填充a个像素
当为(a, b)时,上下填充b个像素,左右填充a个像素 当为(a, b, c, d)时,左,上,右,下分别填充a, b, c, d
· padding_mode:填充模式,有4种模式,constant、edge、reflect和symmetric
· fill:constant时,设置填充的像素值,(R, G, B) or (Gray)
ColorJitter
功能:调整亮度、对⽐度、饱和度和⾊相
· brightness:亮度调整因⼦
当为a时,从[max(0, 1-a), 1+a]中随机选择
当为(a, b)时,从[a, b]中
· contrast:对⽐度参数,同brightness
· saturation:饱和度参数,同brightness
· hue:⾊相参数,当为a时,从[-a, a]中选择参数,注: 0<= a <= 0.5;当为(a, b)时,从[a, b]中选择参数,注:-0.5 <= a <= b <= 0.5 Grayscale
RandomGrayscale
功能:依概率将图⽚转换为灰度图
· num_ouput_channels:输出通道数,只能设1或3
· p:概率值,图像被转换为灰度图的概率
RandomAffine
功能:对图像进⾏仿射变换,仿射变换是⼆维的线性变换,由五种基本原⼦变换构成,分别是旋转、平移、缩放、错切和翻转
· degrees:旋转⾓度设置
· translate:平移区间设置,如(a, b), a设置宽(width),b设置⾼(height) 图像在宽维度平移的区间为 -img_width * a < dx < img_width * a
· scale:缩放⽐例(以⾯积为单位)
· fill_color:填充颜⾊设置
· shear:错切⾓度设置
· resemble:重采样⽅式,有NEAREST、BILINEAR
RandomErasing
功能:对图像进⾏随机遮挡
· p:概率值,执⾏该操作的概率
· scale:遮挡区域的⾯积
· ratio:遮挡区域长宽⽐
· value:设置遮挡区域的像素值,(R, G, B) or (Gray)
transforms.Lambda椒盐噪声
功能:⽤户⾃定义lambda⽅法
· lambd:lambda匿名函数
lambda [arg1 [,arg2, … , argn]] : expression
transforms的操作
1. transforms.RandomChoice
功能:从⼀系列transforms⽅法中随机挑选⼀个
2. transforms.RandomApply
功能:依据概率执⾏⼀组transforms操作
3. transforms.RandomOrder
功能:对⼀组transforms操作打乱顺序
⾃定义transforms
1. 仅接收⼀个参数,返回⼀个参数
2. 注意上下游的输出与输⼊
椒盐噪声
椒盐噪声⼜称为脉冲噪声,是⼀种随机出现的⽩点或者⿊点, ⽩点称为盐噪声, ⿊⾊为椒噪声信噪⽐(Signal-Noise Rate, SNR)是衡量噪声的⽐例,图像中为图像像素的 占⽐
总结
⼀、裁剪
· 1. transforms.CenterCrop
· 2. transforms.RandomCrop
· 3. transforms.RandomResizedCrop
· 4. transforms.FiveCrop
· 5. transforms.TenCrop
⼆、翻转和旋转
· 1. transforms.RandomHorizontalFlip
· 2. transforms.RandomVerticalFlip
· 3. transforms.RandomRotation
三、图像变换
· 1. transforms.Pad
· 2. transforms.ColorJitter
· 3. transforms.Grayscale
· 4. transforms.RandomGrayscale
· 5. transforms.RandomAffine
·
6. transforms.LinearTransformation
· 7. transforms.RandomErasing
· 8. transforms.Lambda
· 9. transforms.Resize
· 10. transforms.Totensor
· 11. transforms.Normalize
四、transforms的操作
· 1. transforms.RandomChoice
· 2. transforms.RandomApply
· 3. transforms.RandomOrder

本文发布于:2024-09-21 23:27:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/359115.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   像素   填充   噪声
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议