transforms.Resize()的简单使用
简单来说就是调整PILImage对象的尺寸,注意不能是用io.imread或者cv2.imread读取的图片,这两种方法得到的是ndarray。
将图片短边缩放至x,长宽比保持不变:
1
|
transforms.Resize(x) |
而一般输入深度网络的特征图长宽是相等的,就不能采取等比例缩放的方式了,需要同时指定长宽:
1
|
transforms.Resize([h, w]) |
例如:
transforms.Resize([224, 224])就能将输入图片转化成224×224的输入特征图。
这样虽然会改变图片的长宽比,但是本身并没有发生裁切,仍可以通过resize方法返回原来的形状:
1
2
3
4
5
6
7
8
9
10
11
|
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。
transforms.Resize([224, 224])解读
记住图像尺度统一为224×224时,要用transforms.Resize([224, 224]),不能写成transforms.Resize(224),transforms.Resize(224)表示把图像的短边统一为224,另外一边做同样倍速缩放,不一定为224
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_40714949/article/details/115393592