我有一个包含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()
答案 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"