tensorflow,numpy的顺序是(batch,h,w,c)
pytorch的顺序是(batch,c,h,w)
里面的图片打开属性查看,可以知道(h,w)=(375,1242) 高度(h),宽度(w)
用Image打开的a是一个PIL类型的,用另外一个打开的b是numpy类型的
所以a查看大小:a.size=(1242,375)=(w,h),注意a没有shape属性,另外一个b查看大小:b.shape=(375,1242,3)=(h,w,c),注意b.size=1397250=375x1232x3
a.resize((w,h),Image.BILINEAR),相对的scipy.misc.imresize(b,(h,w),interp='nearest')
from PIL import Image
import scipy.misc
a=Image.open('/home/zzp/um_lane_000000.png')
b=scipy.misc.imread('/home/zzp/um_lane_000000.png')
print(type(a))
print(type(b))
print(a)
print(b)
c=np.array(a).astype(np.float32).shape # 先将PIL类型转化成numpy类型
print(c)
d=c.transpose((2,0,1))
print(d)
e=torch.from_numpy(d).float() # 再将numpy类型转化成torch.tensor类型
print(type(e))
# the following are outputs
# type(a)=<class 'PIL.PngImagePlugin.PngImageFile'>
# type(b)=<class 'numpy.ndarray'>
# a=<PIL.PngImagePlugin.PngImageFile image mode=RGB size=1242x375 at 0x7F11F0D0FB70> # = a
# b=是一个(375,1242,3)的具体展开
# c = (375,1242,3)=(h,w,c), type(c)=type(b)=type(d)
# d = (3,375,1242)转换成一个Torch的张量形式(c,h,w)
# type(e) = torch.tensor, size=(3,375,1242)
a=Image.open('/home/zzp/um_lane_000000.png').convert('RGB')
b=scipy.misc.imread('/home/zzp/um_lane_000000.png',mode='RGB')