限制从文件夹中加载的图像数量

2024-06-17 13:16:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个文件夹中有50个图像,但为了测试,我需要在不同的大小之间进行选择,例如,有时我只需要文件夹中的10个图像,有时我需要11或15个图像。但我现在正在做的是加载给定文件夹路径中的所有图像。这反过来又会使我创建一个新文件夹,其中包含所需数量的图像,我希望加载不同数量的图像,这是最佳的

这是我加载所有图像的当前方式:

def loadImages(path):

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


    return loadedImages 

那我就去做

images = loadImages('imgfolder'),这将加载文件夹中的所有内容,而我只需要真正需要的数量


1条回答
网友
1楼 · 发布于 2024-06-17 13:16:40

您可以向函数添加第二个参数,它是MegaByte中的最大大小:

import os
import numpy as np
from PIL import Image    

def loadImages(path, max_size):

    imagesList = os.listdir(path)
    loadedImages = []
    temp_size = 0

    for image in imagesList:
        os.chdir(path)
        temp_size += os.path.getsize(image)
        if temp_size > max_size*1000000:
            break           
        img = Image.open(path + image)
        arr = np.array(img)
        loadedImages.append(arr)

    return loadedImages 


loadImages(path, 50)

如果要设置图片的number,可以添加第二个参数作为max_num:

def loadImages(path, max_num):

    imagesList = listdir(path)
    loadedImages = []

    for i, image in enumerate(imagesList):
        if i == max_num:
            break
        img = PImage.open(path + image)
        arr = np.array(img)
        loadedImages.append(arr)

    return loadedImages 

loadImages(path, 10)

相关问题 更多 >