环境 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')