Image.open 和scipy.misc.imread打开读取图片,以及torch的类型

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')

猜你喜欢

转载自blog.csdn.net/zz2230633069/article/details/82664705
今日推荐