transforms.Resize()
是 PyTorch 中的图像处理函数之一,用于调整图像的大小。
该函数可以用于将输入图像调整为指定的大小或按照指定的缩放因子进行调整。
一、使用方式:
transforms.Resize(size)
这里的 size
可以是一个整数,表示将图像的较短边缩放到指定长度,同时保持长宽比。例如,transforms.Resize(256)
将图像的较短边调整为256像素,而较长边将按比例缩放。
size
也可以是 [width, height],表示将图像的宽度和高度调整为指定的尺寸。例如,transforms.Resize([256, 256])
将图像的宽度和高度分别调整为256像素。
注意:在调整大小时,图像的长宽比可能会发生改变,因此图像可能会被拉伸或压缩来适应指定的大小。
代码示例:
from PIL import Image
from torchvision import transforms
# 使用PIL库中的Image模块打开图像文件
img = Image.open('girl.png')
# 打印原始图像的尺寸
print("原图尺寸:", img.size)
# 创建transforms.Resize对象,指定缩放大小为[256, 256]
resize = transforms.Resize([256, 256])
# 使用resize对象对图像进行缩放
img2 = resize(img)
# 打印缩放后图像的尺寸
print("缩放后尺寸:", img2.size)
# 显示原始图像
img.show()
# 显示缩放后的图像
img2.show()
运行结果:
二、常规用法
transforms.Resize()
可以作为数据预处理管道中的一个步骤,用于将输入的图像按照指定的大小或缩放因子进行调整。这样可以确保输入的图像满足模型的输入要求,或者保持不同数据样本具有相同的输入尺寸,在训练或推理过程中方便批次处理。
以下是一个示例:
import torchvision.transforms as transforms
# 定义图像预处理管道
transform = transforms.Compose([
transforms.Resize([256, 256]), # 调整为指定的大小
# 其他预处理操作...
])
# 应用预处理管道到输入图像
input_image = transform(input_image)
此示例将图像调整为宽度和高度均为256像素的大小。这里的 transforms.Resize()
用于调整大小,它还可以与其他图像处理函数组合使用,以构建更复杂的预处理管道。