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

1. 问题描述

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

                              

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

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

2.目标:做成如下格式

               

每种图片归为自己类别

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)

结果如下:

                           

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)

结果如下:

                                 

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

附链接处理好已分类 https://download.csdn.net/download/l8947943/12013168

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

发布了103 篇原创文章 · 获赞 55 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/l8947943/article/details/103383022