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

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

import torch
from torchvision import transforms
from PIL import Image

img = 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 像素,不保持纵横比,因此图像可能会被拉伸。


universe_king
3.4k 声望680 粉丝