(四)yolov3(c++版)+win训练数据之img与xml同时改名

环境 win10 + python3.x + pycharm

如果之前的图片命名不理想,但又生成了xml文档,这时不必费力重新改名再生成xml,可参考如下步骤

1.图片放在JPEGImages目录下,VOC2025的2025这个数字大家可以自己取
在这里插入图片描述
2.对应的xml放在Anaotations目录下,VOC2025的2025这个数字大家可以自己取
在这里插入图片描述3.ImgXmlReName.py 在Yolov3Train 文件目录下,执行输入voc 后面的数字就可以,本人这里是2025
在这里插入图片描述

# -*- coding: utf-8 -*-
# @Author  : xionghao.chen
# @File    : ImgXmlReName.py
# @date    : 2020.03.13
# @Software: PyCharm
#xml 和 img 改名,如果之前的命名没问题的话可以不改。原理上来说是可以不改,但一定要一一对应。为了整齐美观,建议改为000000xxx.xxx的格式

import os

def rename_image(year):
    xmlpath ='VOCdevkit/VOC%s/Annotations'%(year)
    imgpath ='VOCdevkit/VOC%s/JPEGImages'%(year)

    print("imgpath:", imgpath)
    print("xmlpath:", xmlpath)

    imgfiles = os.listdir(imgpath)
    xmlfiles = os.listdir(xmlpath)

    listMiss = []
    n = 1
    for i in imgfiles:
        image_name = os.path.split(i)[-1]
        image_prename = image_name.split('.')[0]

        new_image_name = '%06d'%(n) + '.jpg'
        os.rename('%s/%s'%(imgpath,image_name),'%s/%s'%(imgpath,new_image_name))
        xmlmiss = 0
        for j in xmlfiles:
            xml_name = os.path.split(j)[-1]
            xml_prename = xml_name.split('.')[0]
            if xml_prename == image_prename:
                new_xml_name = '%06d' % (n) + '.xml'
                os.rename('%s/%s' % (xmlpath, xml_name), '%s/%s' % (xmlpath, new_xml_name))
                break
            xmlmiss += 1
            if xmlmiss >= len(xmlfiles):
                listMiss.append(image_name)
        n += 1

    return listMiss


if __name__ == '__main__':

    try:
        year = input("input voc year to rename_image:")
        listResualt = rename_image(year)

        for i in range(len(listResualt)):
            print("xmlMiss:", listResualt[i])

        print('rename_image finish')
    except Exception as e:
        print('rename_image error', e)

    os.system('pause')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值