python 数据集划分:train :val
本代码将带有标签值的图片数据集,划分为可以调节比例大小的 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])