PIL.Image 打开的图片用numpy和to_tensor获得的数据的shape的不同

当输入都是PIL.Image时
numpy h w c
to_tensor c h w

from torchvision.transforms import functional as F
pth = "/root/autodl-tmp/data/bgm/videomatte/train/fgr/0000/00000.jpg"
img = Image.open(pth)
print(img.size)
img_array = asarray(img)
print(img_array.shape)

img = F.to_tensor(img)
print(img.shape)

# (768, 432)
# (432, 768, 3)
# torch.Size([3, 432, 768])

当to_tensor的输入是numpy时,
也会把 numpy的 h w c 顺序转换成c h w

from torchvision.transforms import functional as F
pth = "/root/autodl-tmp/data/bgm/videomatte/train/fgr/0000/00000.jpg"
img = Image.open(pth)
print(img.size)
img_array = asarray(img)
print(img_array.shape)
img_tensor = F.to_tensor(img)
print(img_tensor.shape)

# (768, 432)
# (432, 768, 3)
# torch.Size([3, 432, 768])

numpy 转 PIL

img = Image.fromarray(img_array)

你可能感兴趣的:(PIL,numpy,python,人工智能)