【问题标题】:Extract images in a file and the filename as label提取文件中的图像并将文件名作为标签
【发布时间】:2020-09-21 01:46:36
【问题描述】:

我在学习机器学习问题时有一个问题。我有一个名为 Real World 的文件,其中有 60 个文件,分别命名为 clocks、Bed、Bike。所有这 60 个文件都包含此类别中的图像。因此,我想将所有这些图像放入 python(可能作为 NumPy 数组)中进行分析,并将像“时钟”这样的文件名作为该文件中图像的标签。有没有办法做到这一点?

【问题讨论】:

  • 嗨 MH563,请发布一些最小的问题示例,到目前为止您尝试过的事情以及更详细的信息:包含不同对象图像的文件类型是什么?之后您希望能够对图像执行哪些操作?
  • 谢谢。就像有 60 个类别(文件名),每个类别包含几个图像(.jpg)。我想训练一个分类器,也许是一个 CNN,来区分这些图片。我需要一些建议来了解如何着手解决这个问题。
  • 如果没有关于文件类型的更多详细信息,我无法详细帮助您。也许这有帮助:how to add label to image data set for classification?
  • 对不起。实际上,我的意思是文件夹,而不是文件。如果有帮助,我正在处理的数据集是 hemanthdv.org/OfficeHome-Dataset

标签: python pandas image numpy machine-learning


【解决方案1】:

您可以使用内置 os 库中的函数来完成此操作。 下面的代码以 NumPy 数组列表的形式为您提供图像,并在列表中提供标签名称。

 import os
dir="/dir"
classes=[clas.name for clas in os.scandir(dir) if clas.is_dir()]

X,y=[],[]
for clas in classes:
    path=os.path.join(dir,clas)
    for img in os.listdir(path):
        X.append(plt.imread(os.path.join(path,img)))
        y.append(str(clas))

【讨论】:

  • 非常感谢。但是我得到一个语法错误,class.name 是一个无效的语法。你知道这是为什么吗?谢谢。
  • 抱歉,因为 class 是保留关键字。将名称更改为其他名称,它可以工作,这次对其进行了测试:D is_dir 还有一个错字,我已经用工作代码编辑了答案。
猜你喜欢
  • 2019-03-24
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多