是的,torchvision 的 transforms.Resize 能够批改图像的大小和比例。如果您只指定了一个维度(例如高度),则另一个维度(例如宽度)将按比例调整以放弃原始图像的纵横比。如果您指定两个维度,则图像将被拉伸以填充新尺寸。

以下是一个示例,展现了 transforms.Resize 如何批改图像的大小和比例:

import torchfrom torchvision import transformsfrom PIL import Imageimg = Image.open("example.jpg")  # 原始图像print(img.size)  # 输入原始图像尺寸# 将图像高度调整为 256 像素,宽度将按比例调整以放弃纵横比resize_transform = transforms.Resize((256,))resized_img = resize_transform(img)print(resized_img.size)  # 输入批改后的图像尺寸# 将图像调整为 224x224 像素,不放弃纵横比resize_transform = transforms.Resize((224, 224))resized_img = resize_transform(img)print(resized_img.size)  # 输入批改后的图像尺寸

输入后果:

(640, 360)(455, 256)(224, 224)

在第一个示例中,图像高度被调整为 256 像素,宽度按比例调整以放弃原始图像的纵横比。在第二个示例中,图像被调整为 224x224 像素,不放弃纵横比,因而图像可能会被拉伸。