理解变换:调整大小并以相同大小进行中心裁剪

understanding transforms: resize and centercrop with same size

我正在尝试理解这组特定的组合转换:

transform= transforms.Compose([transforms.Resize((224,224) interpolation=torchvision.transforms.InterpolationMode.BICUBIC),\
transforms.CenterCrop(224),transforms.ToTensor(),\
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])

在变换后使用相同的大小参数进行中心裁剪是否有意义(并且是否合法)?我原以为调整大小本身会给出 centercrop 但我在 repos 中看到 centercrop 是在调整大小之后组成的 - 两者的大小完全相同。我不知道做这样的事情有什么用。为了完整起见,我想补充一点,我的输入图像大小各不相同(即它们的暗淡度不同)。

谢谢!

I would have thought resize itself is giving the center crop.

函数 T.Resize won't center crop your image, the center will stay the same since you are only resizing the original image, i.e. proportions are kept and the original center remains at the center. Applying a crop of the same shape as the image - since it's just after the resize - with T.CenterCrop 没有任何区别,因为您没有从图像中裁剪任何内容。

如果您更改 T.CenterCrop 的大小,然后这和您应用两个转换的顺序将非常重要。