Torchvision
transforms.Compose
用于定义一个图像预处理流程,常见方法有
transforms.ToTensor(): 将PIL图像或NumPy ndarray转换为PyTorch的Tensor格式,并将其范围从[0, 255]缩放到[0.0, 1.0]。
transforms.Normalize(mean, std): 对图像进行标准化。这通常用于将模型在训练时使用的标准化应用到测试数据上。
transforms.RandomHorizontalFlip(): 随机水平翻转图像。
transforms.RandomVerticalFlip(): 随机垂直翻转图像。
transforms.RandomRotation(degrees): 随机旋转图像一定的角度。
transforms.RandomZoom(scale): 随机缩放图像。
transforms.RandomTranslate(x_percent, y_percent): 随机平移图像。
transforms.RandomCrop(size): 从图像中随机裁剪出一个固定大小的小块。
transforms.CenterCrop(size): 在图像的中心裁剪出一个固定大小的小块。
transforms.Resize(size): 调整图像的大小。
transforms.Pad(padding, fill=0): 对图像进行填充。
transforms.RandomOrder(transforms): 随机打乱一系列转换的顺序。
transforms.RandomChoice(transforms): 从给定的转换列表中随机选择一个进行应用。
使用方法
- 导入所需的库和模块:
import torchvision.transforms as transforms
- 创建一个转换流程(Compose),将所需的转换函数依次添加到流程中:
train_tfm = transforms.Compose([
transforms.Resize((128, 128)), # 调整图像大小为128x128
transforms.RandomHorizontalFlip(), # 随机水平翻转图像
transforms.ToTensor(), # 将图像转换为Tensor格式
# 添加其他需要的转换函数
])
- 使用创建的转换流程对图像进行预处理:
image = Image.open("path/to/image.jpg") # 打开图像文件
preprocessed_image = train_tfm(image) # 对图像进行预处理