Pytorch深度学习-代码篇:transforms的使用

介绍图片处理工具Transforms的使用。

理论基础

Transforms包含多个用于处理图像的类,可以对图像进行裁剪、格式转换、归一化等一系列操作。
Transforms.py内包含多个类,在使用时需要先对类实例化,然后再进行操作。

代码实现

这里介绍几个常用的Transforms类。

ToTensor

该类将图像的数据类型转换为Tensor。

1
2
3
4
5
6
7
8
from torchvision import transforms
from PIL import Image

img_PIL = Image.open('1.png')
print(type(img_PIL))
trans_totensor = transforms.ToTensor() # 实例化ToTensor类
img_tensor = trans_totensor(img_PIL)
print(type(img_tensor))
1
2
<class 'PIL.PngImagePlugin.PngImageFile'>
<class 'torch.Tensor'>

Resize

改变图像的尺寸。

1
2
3
4
print(img_PIL.size)
trans_resize = transforms.Resize((120, 120))
img_resize = trans_resize(img_PIL)
print(img_resize.size)
1
2
(230, 225)
(120, 120)

Compose

将不同的组件组合在一起。比如我们可以将上述两个操作合并为一个操作:

1
2
trans_compose = transforms.Compose([trans_resize, trans_totensor])
img = trans_compose(img_PIL)

这等同于:

1
2
img_0 = trans_resize(img_PIL)
img_1 = trans_totensor(img_0)

---------------------本文结束---------------------