划分文件夹中的jpg图片和xml文件


一、前言

提示:类似下面这种情况,图片和标签文件混在一起:
Alt

二、代码

import os
import shutil


def split(src, img, annota):
    imges = []  # 存储所有图片的路径
    annotation = []  # 存储所有xml的路径
    # 第一步:遍历需要分离的文件夹
    for f in os.listdir(src):
        if f.endswith(".bmp"):  #可以是.jpg,.png,.jpeg等等
            imges.append(f)

        if f.endswith(".xml"):  #可以是json文件或者xml文件
            annotation.append(f)
    # 第二步:创建目标图片文件夹和xml文件夹
    if not os.path.isdir(img):  # 如果目标图片文件夹不存在
        os.mkdir(img)
    if not os.path.isdir(annota):  # 如果目标xml文件夹不存在
        os.mkdir(annota)

    # 第三步:转移到目标文件夹中
    for im in imges:  # 遍历所有的图片,将图片文件转移到目标文件夹中
        new_path = os.path.join(src, im)
        print(new_path)
        shutil.copy(new_path, img)

    for ann in annotation:  # 遍历所有的xml,将xml文件转移到目标文件夹中
        new_path = os.path.join(src, ann)
        print(new_path)
        shutil.copy(new_path, annota)


if __name__ == "__main__":
    point = "D:/data/"  # 相对路径
    SrcDir = "xiangsanye" # 需要分离的文件
    dicimg = "tian/image"  # 目标图片文件
    dicann = "tian/mask"  # 目标的xml文件

    src = os.path.join(point, SrcDir)
    imges = os.path.join(point, dicimg)
    annoations = os.path.join(point, dicann)
    split(src, imges, annoations)

三、结果

在这里插入图片描述


在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将导入的图片颜色相同的点的范围写入xml。 使用说明: 2.2.1 默认 系统窗体根据配置文件显示当前时间应关闭的区域。 注:可在界面下方的表格修改关闭区域的相关信息,按【Enter】键完成修改,相关信息将在打印时显示。 2.2.2 临时区域 a) 在下拉列表框(或鼠标左键单击图片需关闭的区域)选择关闭区域或机位,系统窗体显示临时关闭的区域。 b) 在图片的关闭区域单击鼠标右键(或双击工具栏列表框的滑行道、机位等,或在工具栏的列表框选择删除区域,单击鼠标右键选择【删除该区域】),取消所选关闭区域。 c) 在工具栏的列表框选择区域,单击鼠标右键选择【修改区域名】,在标签“请输入新的区域名称”下方的下拉列表框输入新的区域名称,按【Enter】键,当列表框所选区域名改变时,此修改操作完成。 注:1.选择多块区域:单击鼠标左键选择开始区域,单击鼠标右键选择结束区域,则界面显示开始区域至结束区域间所有区域,区域名称为“开始区域名”+“至”+“结束区域名”。 2.可如c)修改区域名称。 2.2.3 配置计划 2.2.3.1 重新配置 删除配置文件所有已有关闭区域的信息。以便于重新配置。 2.2.3.2 增加配置 增加新的关闭区域配置。 a) 配置开始时间和结束时间。 b) 用户可在下拉列表框(或在图片单击鼠标左键)选择关闭区域或机位,亦可点击【导入时间段】按钮,复制已有的配置信息。 c) 点击【增加时间段】按钮,将当前配置的关闭区域作为新的时间段添加到配置文件。 d) 删除关闭区域:在工具栏的列表框选择删除区域并双击鼠标左键,或单击鼠标右键选择【删除该区域】,亦或在图形界面上双击鼠标右键删除关闭区域。 e) 点击【保存】按钮,保存当前配置的区域信息,并进入下一新增区域配置。 f) 点击【返回】按钮,完成该操作。 注:选择多块区域:单击鼠标左键选择开始区域,单击鼠标右键选择结束区域,则选择且界面显示开始区域至结束区域间所有区域,区域名称为“开始区域名”+“至”+“结束区域名”。 2.2.3.3 修改配置 修改已有的关闭区域的配置信息。 a) 点击【增加时间段】按钮,增加新的时间段,以便于在不同时间关闭其他区域。 b) 点击【删除时间段】按钮,删除已有的时间段。 c) 点击【保存】按钮,保存修改后的配置信息。 d) 点击【清空】按钮,清除当前显示的关闭区域。 e) 在工具栏的列表框选择区域,单击鼠标右键选择【修改区域名】,在标签“请输入新的区域名称”下方的下拉列表框输入新的区域名称,按【Enter】键,当列表框所选区域名改变时,此修改操作完成。 f) 点击【返回】按钮,完成该操作。 注:1.选择多块区域:单击鼠标左键选择开始区域,单击鼠标右键选择结束区域,则选择且界面显示开始区域至结束区域间所有区域,区域名称为“开始区域名”+“至”+“结束区域名”。 2.当选择时间段号后,可在图形界面上进行选择操作,否则鼠标无法选择关闭区域。 2.2.3.4 删除配置 在下拉列表框选择要删除第几天的区域,点击【删除】按钮,删除所选区域的相关配置信息。 2.2.3.5 查询配置 选择区域下拉列表框的数据,显示该天所有时间段的关闭区域。选择时间段下拉列表框的数据,显示该时间段的关闭区域,并显示开始时间及结束时间。 2.2.3.6 设置开始日期 选择日期作为“第1天”区域的开始日期,系统根据日期循环显示关闭区域。 2.2.4 全部区域 显示所有可以关闭的区域。 2.2.5 日期查询 选择“开始日期”以后的日期,显示该天的所有时间段的相关信息。 2.2.6 背景颜色 点击【背景颜色】按钮,可选择背景颜色。 2.2.7 打印 打印当前显示的关闭区域、相关信息和备注。 注:1.选择【纸张类型】及【方向】。 2.当图形界面下方表格的【关闭区域】列的信息过长时将无法完全打印,请适当修改区域名称或手动剪切部分信息至新的一行。 2.2.8 备注 编写“备注”的文本信息。 注:在“备注”框上,按住鼠标左键,“备注”随鼠标移动。 配置说明: Data文件夹包含Area_Show.xml、Areas_Config.xml、ColorRange.xml三个文档。 说明如下: Area_Show.xml为 CloseAreas.exe生成的配置文件,用于记录关闭区域的相关信息。 Areas_Config.xml记录位图“浦东机场(副本1).bmp”不同颜色所对应的区域名称。 例: <Area> <Name>1</Name> //区域名称为:(机位)1 <Color>ff0101e7</Color> //位图上的所对应的颜色名称。 <RGB>1,1,231</RGB> //位图上所对应颜色的RGB值。 </Area> 。。。。。。 <Area> <Name>A2(不含)-B1(不含)/B</Name> //区域名称:(跑道)A2(不含)-B1(不含)/B <Color>ff02ac04</Color> //位图上的所对应的颜色名称。 <RGB>2,172,4</RGB> //位图上所对应颜色的RGB值。 </Area> 。。。。。。 <Area> //多块区域构建组合区域 <Name>滑边</Name> //区域名称:(别名)滑边 <Color>ff6e7fff</Color> //同时显示多块区域时, <Color>ff6f80ff</Color> //将各区域对应的颜色名称写入此处。 <Color>ff8073ff</Color> <Color>ff7080ff</Color> 。。。。。。 </Area> ColorRange.xml为Write_Config.exe生成的配置文件,用于记录位图“浦东机场(副本1).bmp”不同颜色的范围。
这段代码主要是用于处理数据集,包括解压数据集、制作标签文件并进行数据集划分。 1. `!unzip -oq /home/aistudio/data/data146144/oil.zip -d /home/aistudio/data/`: 将数据集 `oil.zip` 解压到 `/home/aistudio/data/` 路径下,其 `-oq` 参数表示不提示用户确认解压,`-d` 参数表示指定解压路径。 2. `xml_dir = '/home/aistudio/data/oil/Annotations'` 和 `img_dir = '/home/aistudio/data/oil/JPEGImages'`: 指定标签文件和图像文件的路径。 3. `path_list = list()`: 定义一个列表用于存储图像和标签文件的路径。 4. `for img in os.listdir(img_dir):`: 遍历图像文件夹的所有文件。 5. `img_path = os.path.join(img_dir,img)` 和 `xml_path = os.path.join(xml_dir,img.replace('jpg', 'xml'))`: 构造每张图像对应的标签文件路径。 6. `path_list.append((img_path, xml_path))`: 将图像和标签文件的路径添加到 `path_list` 列表。 7. `random.shuffle(path_list)`: 将 `path_list` 列表的图像和标签文件路径进行随机打乱。 8. `ratio = 0.7`: 将数据集划分为训练集和验证集,`ratio` 变量表示训练集占总数据集的比例。 9. `train_f = open('/home/aistudio/data/oil/train.txt','w')` 和 `val_f = open('/home/aistudio/data/oil/val.txt' ,'w')`: 分别创建训练集和验证集的文件。 10. `for i ,content in enumerate(path_list):`: 遍历打乱后的图像和标签文件路径。 11. `text = img + ' ' + xml + '\n'`: 构造每个样本的标签,包括图像路径和标签文件路径。 12. `if i < len(path_list) * ratio: train_f.write(text)`: 将前 `ratio` 比例的样本写入训练集文件,其余的写入验证集文件。 13. `train_f.close()` 和 `val_f.close()`: 关闭训练集和验证集文件。 14. `label = ['oil']`: 设置需要检测的类别。 15. `with open('/home/aistudio/data/oil/label_list.txt', 'w') as f: for text in label: f.write(text+'\n')`: 将需要检测的类别写入标签文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值