pytorch网络输入图片的格式是[B,C,H,W],分别为batch(每批送入网络的图片数量),图片通道数,图片高,图片宽。
torchvision.transforms可以对图像对象进行一系列裁剪、翻转等转换操作,其中也包括转换为tensor张量。(transforms.ToTensor())
而opencv读取的是ndarray格式,不能进行torchvision.transforms变换。
通过PIL的Image读取的图片是一个图片对象,可以进行裁剪翻转等torchvision.transforms变换。
np.ndarray与PIL.Image对象相互转换:
numpy.array(img) img对象转化为np数组Image.fromarray(arr) np数组转化为img对象
测试代码如下:
from PIL import Imageimport torchvision.transforms as Tfrom models.mobilenet_master2 import MobileNet#导入自己定义的网络模型from torch.autograd import Variable as Vimport torch as ttrans=pose([transforms.Scale(256),transforms.CenterCrop(224),transforms.ToTensor(),T.Normalize(mean=[0.485, 0.456, 0.406],