torchvision.transforms.Resize 主要用于调整图像的尺寸,而不会改变数据内容或通道顺序。torchvision.transforms.Resize 可以对PIL或tensor进行处理。
用法1(处理PIL图像):
import torchvision.transforms as transforms
from PIL import Image
# 定义 Resize 变换
resize_transform = transforms.Resize((100, 100)) # 调整为 100x100
# 或者
resize_transform = transforms.Resize(100) # 长边调整为 100,短边等比例缩放
# 读取图像
img = Image.open("example.jpg")
# 应用 Resize 变换
resized_img = resize_transform(img)
用法2(处理tensor张量):
import torch
import torchvision.transforms as transforms
img_tensor = torch.randn(3, 200, 300) # 假设是一个 RGB 图像
resize_transform = transforms.Resize((100, 150))
resized_tensor = resize_transform(img_tensor) # 变成 (3, 100, 150)
Resize的参数如下:
transforms.Resize(size, interpolation=InterpolationMode.BILINEAR, max_size=None, antialias=None)
- size:目标尺寸。可以是单个值(长边缩放)或
(H, W)
(强制缩放)。 - interpolation:插值方法,如
BILINEAR
(默认)、NEAREST
、BICUBIC
、LANCZOS
。 - max_size:当
size
是单个值时,限制最大尺寸(避免过度缩放)。 - antialias:是否抗锯齿(
True/False
,仅对PIL.Image
有效)。