写入图片到另一文件夹


import os
import random
import argparse
#数据集划分


parser = argparse.ArgumentParser()
#xml文件的地址,根据自己的数据进行修改 xml一般存放在Annotations下
parser.add_argument('--txt_path', default=r'E:\stereovision\yolov5-master\new_data\images', type=str, help='input txt label path')
#数据集的划分,地址选择自己数据下的ImageSets/Main
parser.add_argument('--train_val_path', default=r'E:\stereovision\yolov5-master\new_data\dataset_path\main', type=str, help='output txt label path')
opt = parser.parse_args()

trainval_percent = 0.7  # 训练集和验证集所占比例。 这里没有划分测试集
train_percent = 0.5     # 训练集所占比例,可自己进行调整
xmlfilepath = opt.txt_path
txtsavepath = opt.train_val_path
total_xml = os.listdir(xmlfilepath)
if not os.path.exists(txtsavepath):
    os.makedirs(txtsavepath)

num = len(total_xml)
list_index = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list_index, tv)
train = random.sample(trainval, tr)

file_trainval = open(txtsavepath + '/trainval.txt', 'w')
file_test = open(txtsavepath + '/test.txt', 'w')
file_train = open(txtsavepath + '/train.txt', 'w')
file_val = open(txtsavepath + '/val.txt', 'w')

for i in list_index:
    name = total_xml[i][:-4] + '\n'
    if i in trainval:
        file_trainval.write(name)
        if i in train:
            file_train.write(name)
        else:
            file_val.write(name)
    else:
        file_test.write(name)

file_trainval.close()
file_train.close()
file_val.close()
file_test.close()



#写入图片路径
    
    import os
    sets = ['train', 'val']
    for img_set in sets:
        img_ids = open(r'F:\dataset_path\main\%s.txt' % (img_set)).read().split()
        if not os.path.exists(r'F:\Imagesets'):
            os.makedirs(r'F:\Imagesets')
        list_file = open(r'F:\Imagesets/%s.txt' % (img_set), 'w')
        for img_id in img_ids:
            list_file.write('F:\images/%s.jpg\n'%(img_id))
        list_file.close()

#复制图片路径到另一文件夹

    import shutil
    new_path='E:/stereovision/yolov5-master/new_data/tests/'
    img_ids = open(r'E:\stereovision\yolov5-master\new_data\dataset_path\test.txt').read().split()
    for img_id in img_ids:
        img_idd=new_path+img_id.split('/')[-1]
        shutil.copy(img_id , img_idd)
        print()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值