本代码将带有标签值的图片数据集 划分为可以调节比例大小的 train val
# 划分数据集 import os import cv2 as cv import xml.etree.ElementTree as ET import random import shutil imgs_path r ./ / # 原来的图片集 xml_path r ./ / # 原来的标签值 imgnew_path r ./ / # 生成的图片集 看做train数据集 xmlnew_path r ./ / # 生成的标签值 看做val数据集 imgs_list [] imgs_list os.listdir(imgs_path) # 遍历整个图片文件夹 print(imgs_list) m len(imgs_list) // 10 # 这里设置 划分的比例,乘 1 表示 9:1 划分 n m * 1 list [] for i in range(0, n): rdom_name random.sample(imgs_list, 1) # 随机 从图片名字列表中提取一个 图片的名字 print(rdom_name) a, b rdom_name[0].split( . ) xml_name [a .xml ] ## 提取和图片名字相同的 标签的名字 print(xml_name) shutil.copy( os.path.join(imgs_path, rdom_name[0]), imgnew_path) # 从原来的文件夹中提取图片 保存到新的文件夹中 shutil.copy( os.path.join(xml_path, xml_name[0]), xmlnew_path) # 从原来的文件夹中提取标签 保存到新的文件夹中 os.remove(imgs_path rdom_name[0]) #并删除原有文件 os.remove(xml_path xml_name[0])



