pytorch PIL python库仅加载0,但仍显示图像

falq053o  于 2022-12-26  发布在  Python
关注(0)|答案(1)|浏览(138)
import numpy as np
from PIL import  Image

image_path = f"D:\datasets\dataset_game_objects\\1.jpg"
image = Image.open(image_path)
image_array = np.array(image)
image.show()

我正在运行下面的简单代码来测试我的图像路径是否正确,但我遇到了一个奇怪的错误,我的图像打开了,但当我将其转换为数组时,我得到了以下输出

[[[0 4 0]
  [0 4 0]
  [0 4 0]
  ...
  [0 0 0]
  [1 0 0]
  [1 0 0]]
 [[0 4 0]
  [0 4 0]
  [0 4 0]
  ...
  [0 0 0]
  [1 0 0]
  [1 0 0]]
 [[1 3 0]
  [1 3 0]
  [1 3 0]
  ...
  [0 0 0]
  [1 0 0]
  [1 0 0]]
 ...
 [[0 0 0]
  [0 0 0]
  [0 0 0]
  ...
  [2 1 0]
  [3 2 0]
  [4 3 1]]
 [[0 0 0]
  [0 0 0]
  [0 0 0]
  ...
  [1 0 0]
  [1 0 0]
  [2 1 0]]
 [[0 0 0]
  [0 0 0]
  [0 0 0]
  ...
  [1 0 0]
  [1 0 0]
  [1 0 0]]]

所以我尝试了PilToTensor()作为变换

tensor([[[0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         ...,
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.]],

        [[0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         ...,
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.]],

        [[0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         ...,
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.]]])

所以这是相当奇怪的行为,因为照片都是jpgs

wnavrhmk

wnavrhmk1#

您是否已经考虑到torchvision.transforms.PILToTensor方法会改变维度顺序。引用文档:

Converts a PIL Image (H x W x C) to a Tensor of shape (C x H x W).

参考:https://pytorch.org/vision/stable/generated/torchvision.transforms.PILToTensor.html
如果是的话,你能不能也分享一下这张照片,我可以试试。
附言:我可以简单地评论这一点,但没有足够的点,在我的个人资料中这样做呢

相关问题