python - ValueError('只知道如何处理PNG;安装了Pillow'',Matplotlib可以处理更多的图像')
问题描述
我是 Python 新手,我正在尝试将一系列图像加载为数组。所有图像都在同一个文件夹中。
这是我正在使用的代码。
import os
from os import listdir
from matplotlib import image, pyplot
loaded_images = list()
for filename in listdir('UFO-120/train_val/lrd'):
# load image
lr_train_data = image.imread(filename, format='JPG')
# store loaded image
loaded_images.append(lr_img_data)
print('> loaded %s %s' % (filename, lr_train_data.shape))
这是整个错误消息。
FileNotFoundError Traceback (most recent call last)
<ipython-input-4-81fe8e3a7102> in <module>()
6 for filename in listdir('UFO-120/train_val/lrd'):
7 # load image
----> 8 lr_train_data = image.imread(filename, format='JPG')
9 # store loaded image
10 loaded_images.append(lr_img_data)
1 frames
/usr/local/lib/python3.6/dist-packages/matplotlib/image.py in imread(fname, format)
1462 raise ValueError('Only know how to handle PNG; with Pillow '
1463 'installed, Matplotlib can handle more images')
-> 1464 with Image.open(fname) as image:
1465 return pil_to_array(image)
1466 from matplotlib import _png
/usr/local/lib/python3.6/dist-packages/PIL/Image.py in open(fp, mode)
2807
2808 if filename:
-> 2809 fp = builtins.open(filename, "rb")
2810 exclusive_fp = True
2811
FileNotFoundError: [Errno 2] No such file or directory: 'set_o406.jpg'
该错误似乎告诉我所有文件都需要具有 .png 文件扩展名,但我认为使用 matplotlib image.imread 可以解决该问题。我还添加了 format='JPG' 声明,但这并没有什么不同。
至于文件未找到错误,“set_o406.jpg”是文件夹中的有效文件名。
该文件夹确实包含 1500 张图像,并且“set_o406.jpg”是 #754/1500,我是否可能超出了可以加载到单个数组中的内存?如果是这样,你能推荐一种解决方法吗?
我将不胜感激您能够提供的任何帮助。谢谢你。
解决方案
我已经运行了代码并发现了问题。因此,我根据该对您的程序进行了一些修改:-
第一次修改:- 将目录的路径添加到变量imgDir。
第二次修改:-用imgDir+filename替换文件名。因此,您的程序可以找到您的文件。如果没有其目录的路径,您将无法找到该文件。
第三次修改:-你犯了一个愚蠢的错误,而不是写
loaded_images.append(lr_train_data)
你写了
loaded_images.append(lr_img_data)
所以,最后你的代码看起来像这样: -
import os
from os import listdir
from matplotlib import image, pyplot
imgDir = 'UFO-120/train_val/lrd/'
loaded_images = list()
for filename in listdir(imgDir):
# load image
lr_train_data = image.imread(imgDir+filename, format='JPG')
# store loaded image
loaded_images.append(lr_train_data)
print('> loaded %s %s' % (imgDir+filename, lr_train_data.shape))
推荐阅读
- python - 出于某种原因,当我三次点击 TextInput 时,未选择点击的行
- python - 如何限制 JSONEncoder 产生的浮点数?
- java - Windows Binary 在 CMD 上工作,但不是(总是)使用 ProcessBuilder
- ios - 从 Unity 到 iOS,如何完美自动化框架、设置和 plist?
- java - 如何删除 ArrayList 元素的逗号
- jquery - 当我将 jQuery 对象作为参数传递给函数时,它会发生什么?
- angular - Angular test spy not being called
- docker - 在 Ubuntu 上工作时在 CentOS 上构建 docker 映像导致“stat /bin/sh:没有这样的文件或目录”
- hadoop - 将文件上传到 HDFS 会自动以分布式方式存储文件吗?
- sql-server - 从 varchar 到 int 的 SQL Proc“转换失败”。为什么要转换?