0
点赞
收藏
分享

微信扫一扫

ImageCLEF数据集处理(Python读取txt内容创建文件夹;将图片拷贝至指定文件夹)


1. 问题描述

做迁移时候用到公共数据集ImageCLEF, 但是给的结构如图:

                              

ImageCLEF数据集处理(Python读取txt内容创建文件夹;将图片拷贝至指定文件夹)_image_clef数据集

有b,c,i, p四种图像数据,和list数据,对应每一条数据的名称及其标签,记录举例如下:

b/252.car-side-101/252_0446.jpg 6

2.目标:做成如下格式

               

ImageCLEF数据集处理(Python读取txt内容创建文件夹;将图片拷贝至指定文件夹)_数据集_02

每种图片归为自己类别

3. 脚本如下:

  3.1 查看目录下文件

import os
import shutil

# 列出所有txt记录文件
Domain_Dir = os.listdir('image-clef/list/')
Domain_Dir

结果如下:

['bList.txt', 'cList.txt', 'iList.txt', 'pList.txt']

3.2 创建对应的文件类别目录

# 创建bList对应的文件目录
with open('image-clef/list/' + 'bList.txt', 'r') as f:
for i in f:
# 获取每种记录类别
kind = i.strip('\n').split(' ')[1]
# 新的文件目录名称
path = 'image-clefback/b/' + kind
# 判断该类别目录是否存在
isExists = os.path.exists(path)
# 不存在则创建目录
if not isExists:
os.makedirs(path)

结果如下:

                           

ImageCLEF数据集处理(Python读取txt内容创建文件夹;将图片拷贝至指定文件夹)_文件目录_03

3.3 对图像数据进行归类

with open('image-clef/list/' + 'bList.txt', 'r') as f:
for i in f:
# 获取txt中图片的名称
picture_name = i.strip('\n').split(' ')[0].split('/')[2]
# 获取对应的类别
kind = i.strip('\n').split(' ')[1]
# 移动图片到分类的文件夹
if picture_name in os.listdir('image-clef/b'):
# file_path记录原始图片位置
file_path = 'image-clef/b/' + picture_name
# newpath表示目标文件目录
newpath = 'image-clefback/b/' + kind
#移动
shutil.copy(file_path, newpath)

结果如下:

                                 

ImageCLEF数据集处理(Python读取txt内容创建文件夹;将图片拷贝至指定文件夹)_数据集_04

4.如果不想自己处理,可以下载我处理后的数据,包含原始数据。

附链接处理好已分类 ​​迁移学习(image-clef数据集)_imageclef,imageclef数据集-Python文档类资源-CSDN下载​​

原生数据链接 ​​https://drive.google.com/file/d/0B9kJH0-rJ2uRS3JILThaQXJhQlk/view?usp=sharing​​

5. 更新一下数据集:

感谢[P.C.](​​P.C.的博客_CSDN博客-领域博主​​)对数据集P数量不足600张的指出,同时附带新的数据链接:

        1. 坚果云

链接:https://www.jianguoyun.com/p/DW5Gc_sQmN7PCBjwrKIE

Password: e5v8GG

        2. 百度云

链接:https://pan.baidu.com/s/1rfRRC-tg32Mcfnsm91HVcQ 
提取码:fle0

举报

相关推荐

0 条评论