## 常见的图像变换
官方文档只是将方法陈列,没有归纳总结,顺序很乱,这里总结一共有四大类,方便大家索引:
* 裁剪(Crop)—— 中心裁剪:`transforms.CenterCrop` 随机裁剪:`transforms.RandomCrop` 随机长宽比裁剪:`transforms.RandomResizedCrop` 上下左右中心裁剪:`transforms.FiveCrop` 上下左右中心裁剪后翻转,`transforms.TenCrop`
* 翻转和旋转(Flip and Rotation) ——依概率p水平翻转:`transforms.RandomHorizontalFlip(p=0.5)` 依概率p垂直翻转:`transforms.RandomVerticalFlip(p=0.5)` 随机旋转:`transforms.RandomRotation`
* 图像变换(resize) ——`transforms.Resize` 标准化:`transforms.Normalize` 转为tensor,并归一化至[0-1]:`transforms.ToTensor` 填充:`transforms.Pad` 修改亮度、对比度和饱和度:`transforms.ColorJitter` 转灰度图`:transforms.Grayscale` 线性变换:
`transforms.LinearTransformation()` 仿射变换:`transforms.RandomAffine` 依概率p转为灰度图:`transforms.RandomGrayscale` 将数据转换为PILImage:`transforms.ToPILImage transforms.Lambda`:Apply a user-defined lambda as a transform.
* 对transforms操作,使数据增强更灵活 `transforms.RandomChoice(transforms)`, 从给定的一系列transforms中选一个进行操作 `transforms.RandomApply(transforms, p=0.5)`,给一个transform加上概率,依概率进行操作 `transforms.RandomOrder`,将transforms中的操作随机打乱
## 一、 裁剪——Crop
##### 1.随机裁剪:transforms.RandomCrop
torchvision.transforms.RandomCrop(size,padding = None,pad_if_needed = False,fill = 0,padding_mode =‘constant’ )
* `size(sequence 或int`) - 作物的所需输出大小。如果size是int而不是像(h,w)这样的序列,则进行正方形裁剪(大小,大小)
* `padding(int或sequence ,optional`) - 图像每个边框上的可选填充。默认值为None,即无填充。如果提供长度为4的序列,则它用于分别填充左,上,右,下边界。如果提供长度为2的序列,则分别用于填充左/右,上/下边界
* `pad_if_needed(boolean)` - 如果小于所需大小,它将填充图像以避免引发异常。由于在填充之后完成裁剪,因此填充似乎是在随机偏移处完成的。
* fill - 恒定填充的像素填充值。默认值为0.如果长度为3的元组,则分别用于填充R,G,B通道。仅当padding\_mode为常量时才使用此值.
* `padding_mode`-填充类型。应该是:恒定,边缘,反射或对称。默认值是常量。
+ 常量:具有常量值的焊盘,该值用填充指定
+ edge:填充图像边缘的最后一个值
+ 反射:具有图像反射的垫(不重复边缘上的

最低0.47元/天 解锁文章
3150

被折叠的 条评论
为什么被折叠?



