介绍一种导入文件夹中图片数据集的方法

如果你有一个文件夹,里面有很多图片数据,而label就是图片的名称,图片排列杂乱无章,这时候导入数据可能显得略微棘手,可以用下面方法尝试试试看。

这里要使用imutils包,如果没有的话,可以通过pip来安装一下。还有就是使用OpenCV来导入数据

假设我们想要到导入的17flowers(牛津花卉数据集),我们可以这样写代码:

import cv2
from imutils import paths

imagePaths = list(paths.list_images(r'17flowers'))  # 提取该目录下所有图片文件名并组成一个列表
classNames = [pt.split(os.path.sep)[-2] for pt in imagePaths]  # os.path.sep是路径分隔符,因为不同操作系统不一样,所以写成这样更稳妥
classNames = [str(x) for x in np.unique(classNames)]   # 使用np.unique()查找所有classNames中非重复元素,并以字符串形式返回一个列表中

data = []
labels = []
for (i,imagePath) in enumerate(imagePaths):
            image = cv2.imread(imagePath)
            label = imagePath.split(os.path.sep)[-2]
            
            data.append(image)
            labels.append(label)

当然也可以写成h5文件的形式来导入data。

你可能感兴趣的:(深度学习)