transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, interpolation=<InterpolationMode.NEAREST: 'nearest'>, fill=0, fillcolor=None, resample=None, center=None)

degrees:可从中选择的度数范围。如果为非零数字,旋转角度从(-degrees,+degress),或者可设置为(min,max)
translate:水平和垂直平移的最大绝对偏移量。长度为2的元组,数值在(0,1)之间,dx在(-w*a,w*a),dy在(-h*b,h*b)
scale:比例因子区间,例如(a,b),则从范围a<=比例<=b中随机采样比例。默认情况下,将保留原始比例。
shear:可从中选择的度数范围。放射变换的角度
interpolation:插值的方法如果输入为Tensor只支持InterpolationMode.NEAREST, InterpolationMode.BILINEAR 
fill:填充像素的值,
fillcolor:0.14以后版本被移除,使用fill代替
resample:0.14以后版本被移除,使用interpolation代替
center:旋转中心的位置,默认为图片的中心
import torchvision.transforms as transform
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
import torch
img0=Image.open('lin-xiao-xun-000003.jpg')
img1=transform.RandomAffine(degrees=(10,150))(img0)
img2=transform.RandomAffine(degrees=0,translate=(0.1,0.6))(img0)
img3=transform.RandomAffine(degrees=0,translate=(0,0),scale=(1,2))(img0)
img4=transform.RandomAffine(degrees=0,translate=(0,0),shear=45)(img0)
img5=transform.RandomAffine(degrees=0,translate=(0.2,0.5),fill=(0,125,0))(img0)

axs = plt.figure().subplots(1, 6)
axs[0].imshow(img0);axs[0].set_title('src');axs[0].axis('off')
axs[1].imshow(img1);axs[1].set_title('degrees');axs[1].axis('off')
axs[2].imshow(img2);axs[2].set_title('translate');axs[2].axis('off')
axs[3].imshow(img3);axs[3].set_title('scale');axs[3].axis('off')
axs[4].imshow(img4);axs[4].set_title('shear');axs[4].axis('off')
axs[5].imshow(img5);axs[5].set_title('fill');axs[5].axis('off')
plt.show()

实图演示:

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐