调整大小¶
- class torchvision.transforms.v2.Resize(size: Optional[Union[int, Sequence[int]]], interpolation: Union[InterpolationMode, int] = InterpolationMode.BILINEAR, max_size: Optional[int] = None, antialias: Optional[bool] = True)[source]¶
将输入调整到给定尺寸。
如果输入是
torch.Tensor
或TVTensor
(例如Image
,Video
,BoundingBoxes
等),它可以包含任意数量的前导批次维度。例如,图像的形状可以为[..., C, H, W]
。边界框的形状可以为[..., 4]
。- 参数:
size (序列, 整型, 或 None) –
期望的输出尺寸。
如果 size 是像 (h, w) 这样的序列,则输出尺寸将与此匹配。
如果 size 是一个整型数,则图像的较短边将匹配到此数字。即,如果 height > width,则图像将被重新缩放为 (size * height / width, size)。
如果 size 为 None,则输出形状由参数
max_size
决定。
注意
在 torchscript 模式下,不支持将 size 作为单个整型数,请使用长度为 1 的序列:
[size, ]
。interpolation (InterpolationMode, 可选) – 期望的插值枚举,由
torchvision.transforms.InterpolationMode
定义。默认为InterpolationMode.BILINEAR
。如果输入是 Tensor,仅支持InterpolationMode.NEAREST
、InterpolationMode.NEAREST_EXACT
、InterpolationMode.BILINEAR
和InterpolationMode.BICUBIC
。也接受相应的 Pillow 整型常量,例如PIL.Image.BILINEAR
。max_size (整型, 可选) –
调整大小后的图像长边的最大允许尺寸。
如果
size
是一个整型数:如果图像的长边在根据size
调整大小后大于max_size
,则size
将被覆盖,使得长边等于max_size
。结果是,短边可能会小于size
。仅当size
是一个整型数(或在 torchscript 模式下是长度为 1 的序列)时支持此功能。如果
size
为 None:图像的长边将匹配到 max_size。即,如果 height > width,则图像将被重新缩放为 (max_size, max_size * width / height)。
当
size
是一个序列时,此参数应保持None
(默认值)。antialias (布尔型, 可选) –
是否应用抗锯齿。它仅影响双线性或双三次模式下的 tensor,在其他情况下会被忽略:对于 PIL 图像,在双线性或双三次模式下总是应用抗锯齿;对于其他模式(PIL 图像和 tensor),抗锯齿没有意义,此参数将被忽略。可能的值为
True
(默认):将对双线性或双三次模式应用抗锯齿。其他模式不受影响。这可能是您想要使用的设置。False
:将不对 tensor 在任何模式下应用抗锯齿。PIL 图像在双线性或双三次模式下仍然会应用抗锯齿,因为 PIL 不支持关闭抗锯齿。None
:对于 tensor 等同于False
,对于 PIL 图像等同于True
。此值是出于兼容性原因而存在,除非您非常清楚自己在做什么,否则可能不希望使用它。
默认值在 v0.17 中从
None
更改为True
,以使 PIL 和 Tensor 后端保持一致。
使用
Resize
的示例