如何转换 csv 文件中的图像文件夹

数据挖掘 scikit-学习 熊猫 图像分类 图像识别 CSV
2021-09-28 06:42:00

我有一个包含很多图像的文件夹,我想用这些图像在 python 中使用 SVM 模型和 sklearn 对分类器进行分类。我一直使用 csv 文件作为 sklearn 的训练/测试集,我该怎么做?(一个 csv 文件,其中包含对应于图像的记录和每个像素的变量)

2个回答

您正在描述一次性预处理步骤,该步骤将在您的文件夹中爬行并将每张图像转换为一行数据,然后将整个集合保存在 CSV 文件中。反过来,该文件成为您的黄金标准数据集。

如果我处于你的位置,我会研究已经提供 python 库来快速完成这项任务的 Keras 预处理工具。这是图像处理的常见需求,Keras 库非常成熟,可以为您完成。

它应该是这样的:

  1. 读取图像 Image.open()
  2. 转换成 np.array()
  3. 将之前的 3D 阵列(高 x 宽 x 通道)扁平化为 1D 阵列
  4. 将所有一维数组收集到列表中
  5. 将列表转换为 np.array,生成二维数组(图像 x 像素)

注意:以下代码未经测试

import glob
import PIL
import numpy

data = np.array([ np.array(PIL.Image.open(f).convert("RGB")).ravel() 
                  for f in glob.glob("./folder/*.jpeg") ])