lable是一个图片一个txt文件。
数据集的存放位置如下图:
标签和图片的名字应该是一一对应。
import os
import shutil
import random
ratio=0.1
# img_dir='/home/user/Dataset/supplement_dataset_yuanshi/images/'
# label_dir='/home/user/Dataset/supplement_dataset_yuanshi/labelTxt/'
# train_img_dir='/home/user/Dataset/b_dataset/train/images'
# val_img_dir='/home/user/Dataset/b_dataset/val/images'
# train_label_dir='/home/user/Dataset/b_dataset/train/labelTxt/'
# val_label_dir='/home/user/Dataset/b_dataset/val/labelTxt/'
img_dir='/Users/aoxin/CODE/python/split-dataset/output-L2/images/'
label_dir='/Users/aoxin/CODE/python/split-dataset/output-L2/lables/'
train_img_dir='/Users/aoxin/CODE/python/split-dataset/origin-L2-div/train/images'
val_img_dir='/Users/aoxin/CODE/python/split-dataset/origin-L2-div/val/images'
train_label_dir='/Users/aoxin/CODE/python/split-dataset/origin-L2-div/train/lableTxt/'
val_label_dir='/Users/aoxin/CODE/python/split-dataset/origin-L2-div/val/lableTxt/'
if not os.path.exists(train_img_dir):
os.makedirs(train_img_dir)
if not os.path.exists(val_img_dir):
os.makedirs(val_img_dir)
if not os.path.exists(train_label_dir):
os.makedirs(train_label_dir)
if not os.path.exists(val_label_dir):
os.makedirs(val_label_dir)
allnames = os.listdir(img_dir)
names=[]
for name in allnames:
if name.endswith('.tif'):
names.append(name)
val_names = random.sample(names,int(len(names)*ratio))
cnt_1=0
cnt_2=0
for name in names:
if name in val_names:
shutil.copy(os.path.join(img_dir,name),os.path.join(val_img_dir,name))
shutil.copy(os.path.join(label_dir, name[:-4]+'.txt'), os.path.join(val_label_dir, name[:-4]+'.txt'))
else:
shutil.copy(os.path.join(img_dir, name), os.path.join(train_img_dir, name))
shutil.copy(os.path.join(label_dir, name[:-4] + '.txt'), os.path.join(train_label_dir, name[:-4] + '.txt'))