pytorch中的transforms.resize()函数

transforms.Resize 是 PyTorch 的 torchvision.transforms 模块中的一个函数,它用于调整图像的大小。这个函数可以接收一个整数或一个元组作为参数,以指定输出图像的大小。

使用方式

  •  size 参数是一个整数时,表示将图像的较短边缩放到指定长度,同时保持长宽比。例如,transforms.Resize(256) 会将图像的较短边调整为 256 像素,而较长边将按比例缩放。
  • 当 size 参数是一个元组 [width, height] 时,表示将图像的宽度和高度分别调整为指定的尺寸。例如,transforms.Resize([256, 256]) 会将图像的宽度和高度都调整为 256 像素。

插值方法

除了 size 参数外,transforms.Resize 还接受一个可选的 interpolation 参数,用于指定图像缩放时采用的插值方法。插值方法决定了新图像中像素值的计算方式,从而影响缩放后图像的质量。PyTorch 提供了多种插值方法,如 InterpolationMode.NEARESTInterpolationMode.BILINEAR 和 InterpolationMode.BICUBIC 等。

示例代码

以下是一个使用 transforms.Resize 的示例代码:

from torchvision import transforms
# 创建一个 Resize 变换对象,将图像缩放到 256x256
resize_transform = transforms.Resize((256, 256))
# 假设你有一个 PIL Image 对象 image
# 使用 Resize 变换对象调整图像大小
resized_image = resize_transform(image)

在这个示例中,我们首先导入了 transforms 模块,然后创建了一个 Resize 变换对象,指定将图像缩放到 256x256。然后,我们使用这个变换对象对一个 PIL Image 对象进行了处理,得到了缩放后的图像。

PIL Image 对象

PIL Image 对象通常是指 Python Imaging Library (PIL) 或其分支库 Pillow(PIL 的一个更友好和易于安装的版本)中的图像对象。Pillow 提供了许多用于打开、操作和保存图像的方法和属性。

以下是如何使用 Pillow 库创建和操作 PIL Image 对象的一些基本示例:

安装 Pillow

如果你还没有安装 Pillow,可以通过 pip 安装它:

pip install pillow

使用 PIL Image 对象

打开图像
from PIL import Image
# 打开一个图像文件
image = Image.open('path_to_your_image.jpg')
# 显示图像(在某些环境中,如 Jupyter Notebook)
image.show()
调整图像大小

虽然前面提到了 transforms.Resize 用于 PyTorch 的数据变换,但你也可以使用 Pillow 的 resize 方法来调整图像大小:

# 使用 resize 方法调整图像大小
resized_image = image.resize((256, 256)) # 调整为 256x256 像素
resized_image.show()
裁剪图像
# 裁剪图像
# 参数是一个四元组,定义了左、上、右、下的像素坐标
cropped_image = image.crop((left, upper, right, lower))
cropped_image.show()
旋转图像
# 旋转图像
rotated_image = image.rotate(45) # 旋转 45 度
rotated_image.show()
保存图像
# 保存图像到文件
resized_image.save('resized_image.jpg')
转换为 NumPy 数组

如果你需要将 PIL Image 对象转换为 NumPy 数组以便在 PyTorch 或其他科学计算库中使用,可以使用 numpy.array()

import numpy as np
# 将 PIL Image 转换为 NumPy 数组
np_image = np.array(image)

注意:PIL Image 对象通常是使用 8 位整数表示的,范围从 0 到 255。如果你需要浮点数表示或归一化的图像,你可能需要进一步处理这个 NumPy 数组。

转换为 PyTorch Tensor

你也可以直接将 PIL Image 对象转换为 PyTorch Tensor:

from torchvision import transforms
# 创建一个转换对象,用于将 PIL Image 转换为 PyTorch Tensor
to_tensor = transforms.ToTensor()
# 应用转换,将 PIL Image 转换为 PyTorch Tensor
tensor_image = to_tensor(image)
# 现在 tensor_image 是一个 PyTorch Tensor,其值范围在 [0.0, 1.0] 之间
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值