Python - 打开带有图片的文件夹

时间:2017-10-03 11:55:14

标签: python image matrix file-upload

我有一个包含20张图片的文件夹。我想打开文件夹并扫描所有图片,并为每张图片创建自己的矩阵。

我该怎么做?

from os import listdir
from PIL import Image as PImage

def loadImages(path):
    # return array of images

    imagesList = listdir(path)
    loadedImages = []
    for image in imagesList:
        img = PImage.open(path + image)
        loadedImages.append(img)

    return loadedImages

path = open(r"C:\Users\yasmin\Desktop\weeds\type1",encoding='utf-8')

# your images in an array
imgs = loadImages(path)

for img in imgs:
    # you can show every image
    img.show()

2 个答案:

答案 0 :(得分:0)

对于图像处理,我建议使用PIL:documentation

对于文件夹和文件处理,请查看os库。

示例:

import os
from PIL import Image

for file in os.listdir(path):
    image = Image.open(os.path.abspath(path + "/" + file))
    pixels = image.load()

修改

我会在loadImages中进行以下更改:

def loadImages(path):
    imagesList = listdir(path)
    loadedImages = []
    for image in imagesList:
        if image[-3:] in ["png", "jpg"]:
            img = PImage.open(path + "/" + image)
            loadedImages.append(img)

    return loadedImages

您缺少文件夹和文件名之间的目录分隔符(" /")。 这将检查文件是否具有jpg或png作为扩展名。

答案 1 :(得分:0)

第一个问题是您在'结束时错过了encoding=。但是,你根本不需要这条线。 os.listdir()需要一个字符串,该字符串是包含图像的文件夹的路径。没有必要open任何事情,这就是为什么你得到你的第二个,"许可被拒绝"错误。因此,只需替换:

path = open(r"C:\Users\yasmin\Desktop\weeds\type1",encoding='utf-8')

使用:

path = "C:\Users\yasmin\Desktop\weeds\type1"