使用 PIL 从文件夹加载所有图像

Nic*_*olo 9 python python-imaging-library

import glob
from PIL import Image 


marked = glob.iglob("D:/Users/username/Desktop/cells/Marked")

img = Image.open(marked)
img.show()
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用标记的文件夹中包含的图像数据集创建神经网络。当我运行代码时,我收到错误:

 File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PIL/Image.py", line 2547, in open
    fp.seek(0)
AttributeError: 'generator' object has no attribute 'seek'
Run Code Online (Sandbox Code Playgroud)

我不明白错误是什么意思,它似乎被误导了?

cs9*_*s95 7

您需要在路径的末尾指定一个通配符并进行迭代:

images = []
for f in glob.iglob("D:/Users/username/Desktop/cells/Marked/*"):
    images.append(np.asarray(Image.open(f)))

images = np.array(images)
Run Code Online (Sandbox Code Playgroud)

  • Downvoter,您能否给我反馈以改进此答案? (2认同)

小智 5

请参阅此答案,它使用 PIL.Image 和 glob 查找文件夹中的所有图像并将它们加载到数组中。

from PIL import Image
import glob
image_list = []
for filename in glob.glob('yourpath/*.gif'): #assuming gif
    im=Image.open(filename)
    image_list.append(im)
Run Code Online (Sandbox Code Playgroud)