简单来说就是调整PILImage对象的尺寸,注意不能是用io.imread或者cv2.imread读取的图片,这两种方法得到的是ndarray。
将图片短边缩放至x,长宽比保持不变:
transforms.Resize(x)
而一般输入深度网络的特征图长宽是相等的,就不能采取等比例缩放的方式了,需要同时指定长宽:
transforms.Resize([h, w])
例如transforms.Resize([224, 224])就能将输入图片转化成224×224的输入特征图。
这样虽然会改变图片的长宽比,但是本身并没有发生裁切,仍可以通过resize方法返回原来的形状:
from PIL import Image
from torchvision import transforms
img = Image.open('1.jpg')
w, h = img.size
resize = transforms.Resize([224,244])
img = resize(img)
img.save('2.jpg')
resize2 = transforms.Resize([h, w])
img = resize2(img)
img.save('3.jpg')
需要注意的一点是PILImage对象size属性返回的是w, h,而resize的参数顺序是h, w。
本文介绍了如何使用Python的PIL库来调整图像尺寸,包括保持原始长宽比的缩放和固定长宽的缩放。通过transforms.Resize()方法,可以将图片短边缩放至指定大小或指定固定的长宽尺寸。尽管这可能会改变图片原有的长宽比,但通过resize方法可以恢复原始尺寸。示例代码展示了如何将图片转换为224x224的特征图,然后再恢复原尺寸。

2120

被折叠的 条评论
为什么被折叠?



