torchvision.transforms.RandomAffine()用法
时间: 2023-11-22 14:55:44 浏览: 161
torchvision.transforms.RandomAffine()函数可以用来对图像进行随机仿射变换。它可以通过随机旋转、平移、缩放和剪切等操作来实现图像的变换。
函数的完整用法如下:
```python
torchvision.transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, resample=False, fillcolor=0)
```
其中,各参数的含义如下:
- degrees:旋转角度的范围,可以是单个数字或一个范围,如degrees=(-30, 30)表示旋转角度在-30度到30度之间随机取值。
- translate:平移的范围,可以是一个包含两个数字的元组,表示在x轴和y轴方向上的平移范围。
- scale:缩放的范围,可以是一个包含两个数字的元组,表示在x轴和y轴方向上的缩放范围。
- shear:剪切的范围,可以是一个包含两个数字的元组,表示在x轴和y轴方向上的剪切范围。
- resample:重采样方法,可选值为PIL.Image.NEAREST、PIL.Image.BILINEAR、PIL.Image.BICUBIC或PIL.Image.LANCZOS,默认为False。
- fillcolor:填充颜色,可以是一个数值或一个元组,表示填充的颜色,默认为0。
下面是一个示例代码,展示了如何使用RandomAffine()函数对图像进行随机仿射变换。
```python
import torch
import torchvision.transforms as transforms
from PIL import Image
img = Image.open("test.jpg") # 加载图像
transform = transforms.RandomAffine(degrees=(-30, 30), translate=(0.1, 0.1), scale=(0.8, 1.2), shear=(-10, 10))
img_transformed = transform(img) # 对图像进行随机仿射变换
img_transformed.show() # 显示变换后的图像
```
其中,我们先加载了一张名为test.jpg的图像,然后使用RandomAffine()函数进行随机仿射变换,并通过show()方法显示变换后的图像。在这个示例中,我们随机旋转角度在-30到30度之间,平移距离在x轴和y轴方向上各不超过10%的图像大小,缩放范围在80%到120%之间,剪切范围在-10到10度之间。
阅读全文