【问题标题】:Image is in JPEG but Torchvision shows image extension is unsupported图像为 JPEG,但 Torchvision 显示图像扩展名不受支持
【发布时间】:2019-11-05 07:42:18
【问题描述】:

我刚刚使用 Pillow 调整了图像数据集的大小并通过以下步骤导出为 JPEG: 数据集是 1000K Celeb,但我只拿了几个来测试建议。

img = img.crop([10, 10, 118, 118])
img = img.resize((image_size, image_size), Image.BILINEAR)
img.save(save_dir + img_list[i], 'JPEG')

然后我使用了torchvision的Imagefolder函数从文件夹中读取数据

 mydata = torchvision.datasets.ImageFolder(data_path_here, transform=transform)

图像按预期以 JPG 格式导出,但当尝试从 torchvision 读取数据集时,它显示该文件不是 JPEG 格式。 RuntimeError: Found 0 files in subfolders of: Data/celeb_data/resized_celeb/ Supported extensions are: .jpg,.jpeg,.png,.ppm,.bmp,.pgm,.tif,.tiff,.webp

操作系统:Ubuntu 18.04 IDE:Pycharm 19

【问题讨论】:

  • 您的问题缺少很多细节。您刚刚调整了图像数据集的大小?哪个图像数据集?图像在哪里?你用 Pillow 做到了。如何?并导出为JPEG。如何?您试图在torchvision 中阅读它。如何?您使用的是什么操作系统、工具版本等?
  • @MarkSetchell 我已经更新了这个问题。为了让您更清楚,图像以 JPG 格式成功调整大小,因为我可以按预期看到图像的属性。但是当我使用 torchvision.datasets.ImageFolder 函数读取图像时,它显示图像格式不正确。
  • 错误信息表明它对文件扩展名不满意,而不是格式。该目录下是否有图片以外的文件?
  • @MarkRansom 文件夹内没有其他文件。

标签: image-processing python-imaging-library pytorch


【解决方案1】:

我认为您可能需要像这样重组目录:

Data/celeb_data/resized_celeb/label_name: 
  - 1.jpg
  - 2.jpg
  ...

您可以在加载后丢弃标签。这为我解决了问题。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    尝试在代码中重命名文件扩展名:

    // img.save(save_dir + img_list[i], 'JPEG')
    img.save(save_dir + img_list[i], 'jpeg')
    

    【讨论】:

      【解决方案3】:

      这样检查文件类型后你会得到什么?

      ! apt install file
      ! file image.jpeg
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-25
        • 1970-01-01
        • 2018-04-26
        • 2015-11-15
        • 2013-06-17
        相关资源
        最近更新 更多