获取文件夹下图片的路径以及路径对应的标签

在这里插入图片描述

# -*- coding: UTF-8 -*-
#@Time : 2020/4/28 @Author : SUNLIN
import os

class ImageClass():
    "Stores the paths to images for a given class"
    def __init__(self, name, image_paths):
        self.name = name
        self.image_paths = image_paths

    def __str__(self):
        return self.name + ', ' + str(len(self.image_paths)) + ' images'

    def __len__(self):
        return len(self.image_paths)

def get_image_paths(facedir):
    image_paths = []
    if os.path.isdir(facedir):
        images = os.listdir(facedir)
        image_paths = [os.path.join(facedir,img) for img in images]
    return image_paths

def get_dataset(path, has_class_directories=True):
    dataset = []
    path_exp = os.path.expanduser(path)
    classes = [path for path in os.listdir(path_exp) \
                    if os.path.isdir(os.path.join(path_exp, path))]
    classes.sort()
    nrof_classes = len(classes)
    for i in range(nrof_classes):
        class_name = classes[i]
        facedir = os.path.join(path_exp, class_name)
        image_paths = get_image_paths(facedir)
        img_class=ImageClass(class_name, image_paths)
        dataset.append(ImageClass(class_name, image_paths)) #dataset里面是一个类别的对象


    return dataset

def get_image_paths_and_labels(dataset):
    image_paths_flat = []
    labels_flat = []
    for i in range(len(dataset)):
        image_paths_flat += dataset[i].image_paths
        labels_flat += [dataset[i].name]* len(dataset[i].image_paths)
    return image_paths_flat,labels_flat

#获取img路径下的所有的图片,以及每张图片对应的标签
if __name__=='__main__':
    dataset=get_dataset('img')
    paths, labels = get_image_paths_and_labels(dataset)
    print(paths,labels)

[‘img\mayiyan\1.jpg’, ‘img\mayiyan\2.jpg’, ‘img\mayiyan\3.jpg’, ‘img\mayiyan\4.jpg’, ‘img\mayiyan\5.jpg’, ‘img\mayiyan\6.jpg’, ‘img\mayiyan\7.jpg’, ‘img\nanase\1.jpg’, ‘img\nanase\2.jpg’, ‘img\nanase\3.jpg’, ‘img\nanase\4.jpg’, ‘img\nanase\5.jpg’, ‘img\nanase\6.jpg’, ‘img\nanase\7.jpg’] [‘mayiyan’, ‘mayiyan’, ‘mayiyan’, ‘mayiyan’, ‘mayiyan’, ‘mayiyan’, ‘mayiyan’, ‘nanase’, ‘nanase’, ‘nanase’, ‘nanase’, ‘nanase’, ‘nanase’, ‘nanase’]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值