自动修改yolo标签

在网上找yolo数据集,发现标签和我自己有的数据集虽然一样,但是对应不上。

比如文件中的0号标签在我数据集中为3号标签,2号标签在我数据集中为1号标签。

由于文件太多,一个一个打开修改太费时间了

写了一段python代码自动修改:

注:判断逻辑请按照自己的需求修改!!!!!

import os

#替换字符串string中指定位置p的字符为c
def sub(string,p,c):
    string = list(string)
    string[p] = c
    return ''.join(string)

path = "D:/数据集/RoadDamage/Road Damage/labels - 副本/old/" # 需要修改的文件的路径,注意/要到文件目录下
file_dir = os.listdir(path)


# 遍历该目录下的所有文件
for file in file_dir:
    file_name = os.path.join(path , file)   # 文件名file和文件路径path拼接成完整路径

    print(file_name)
    f2 = open('D:/数据集/RoadDamage/Road Damage/labels - 副本/new/' + file,'a+') # 修改后文件存放的路径
    with open(file_name) as f:  # 开始读取文件
        for line in f.readlines():  # readlines(),把文件所有的行都读取进来;
            img_file = line.strip() # 删除行后的换行符,img_file 就是每行的内容啦
            num = img_file[0]
            print("————————开始:" + img_file)
            # ———————————————下面都是你需要判断的逻辑————————————————
            if(num == "3"):
                img_file = sub(img_file,0,'0')
                f2.write(img_file + '\n')
            elif(num == "2"):
                img_file = sub(img_file,0,'1')
                f2.write(img_file + '\n')
            elif(num == "1"):
                img_file = sub(img_file,0,'2')
                f2.write(img_file + '\n')
            elif(num == "0"):
                img_file = sub(img_file,0,'3')
                f2.write(img_file + '\n')
            # ————————————————————逻辑判断结束————————————————
            print("————————结束:" + img_file)
    f2.close()

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值