预处理之随机旋转

该博客介绍了在图像预处理中如何使用`transforms.RandomRotation`进行随机旋转操作,包括旋转角度的选择、重采样方法、是否扩大图片以保持原图信息以及旋转中心的设置。通过实例展示了如何在Python中读取图像,应用预处理变换,并进行逆变换以展示预处理效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

预处理之随机旋转 预处理之随机旋转 预处理之随机旋转

随机旋转:transforms.RandomRotation

功能: 随机旋转图片

主要参数说明:

  1. degrees :旋转角度
    当为a时,在(-a, a)之间选择旋转角度
    当为(a, b)时,在(a, b)之间选择旋转角度
  2. resample :重采样方法
  3. expand :是否扩大图片,以保持原图信息
  4. center旋转点设置, 默认中心旋转
from PIL import Image
from torchvision import transforms
from utils import transform_invert


if __name__ == '__main__':
    # 1.读取图像
    img = Image.open(r"./test.jpg").convert('RGB')
    # 2.确定预处理方式
    img_transform = transforms.Compose([transforms.Resize((300,300)),  # 重置大小为300*300
                                        transforms.RandomRotation(60),  # 在-6060之间随机进行旋转
                                        transforms.ToTensor()  # 转Tensor型变量
                                        ])
    # 3.进行预处理
    img_tensor = img_transform(img)
    # 4.逆Transform变换
    img = transform_invert(img_tensor, img_transform)  # input: shape=[c h w]
    # 5.进行预处理效果展示
    img.show()

在这里插入图片描述

from PIL import Image
from torchvision import transforms
from utils import transform_invert


if __name__ == '__main__':
    # 1.读取图像
    img = Image.open(r"./test.jpg").convert('RGB')
    # 2.确定预处理方式
    img_transform = transforms.Compose([transforms.Resize((300,300)),  # 重置大小为300*300
                                        transforms.RandomRotation(90,expand=True),  # expand=True 会改变图像尺寸,来保持图像的完整性
                                        transforms.ToTensor()  # 转Tensor型变量
                                        ])
    # 3.进行预处理
    img_tensor = img_transform(img)
    # 4.逆Transform变换
    img = transform_invert(img_tensor, img_transform)  # input: shape=[c h w]
    # 5.进行预处理效果展示
    img.show()

在这里插入图片描述
在这里插入图片描述

配合使用,需要再重新Resize一下

    img_transform = transforms.Compose([transforms.Resize((300,300)),  # 重置大小为300*300
                                        transforms.RandomRotation(90,expand=True),  # 垂直翻转
                                        transforms.Resize((300, 300)),  # 重置大小为300*300
                                        transforms.ToTensor()  # 转Tensor型变量
                                        ])

在这里插入图片描述

改变旋转中心

from PIL import Image
from torchvision import transforms
from utils import transform_invert


if __name__ == '__main__':
    # 1.读取图像
    img = Image.open(r"./test.jpg").convert('RGB')
    # 2.确定预处理方式
    img_transform = transforms.Compose([transforms.Resize((300,300)),  # 重置大小为300*300
                                        transforms.RandomRotation(90,center=(0,0)),  # 改变旋转中心
                                        transforms.Resize((300, 300)),  # 重置大小为300*300
                                        transforms.ToTensor()  # 转Tensor型变量
                                        ])
    # 3.进行预处理
    img_tensor = img_transform(img)
    # 4.逆Transform变换
    img = transform_invert(img_tensor, img_transform)  # input: shape=[c h w]
    # 5.进行预处理效果展示
    img.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值