根据TXT文本内容匹配文件夹下的XML

版权声明:本文为博主原创文章,转载请注明作者和出处。https://blog.csdn.net/xq920831/article/details/88868481

最近研究了目标检测的SSD算法,在进行数据TFrecord格式制作之后,需要统计训练集和测试集的各类图片数和框定数

参考:https://blog.csdn.net/weixin_39881922/article/details/80569803

统计数目不可能一个个数,我们需要将train.txt下的文件名所对应的XML文件提取出来,再配合网友制作的统计代码即可

统计代码:https://blog.csdn.net/memories_sunset/article/details/83309417

我这里要做的就是中间步骤,匹配出对应的XML即可,利用python并不难

代码如下:

# -*- coding:utf-8 -*-
# Author: Agent Xu
import os
import glob
import shutil
from PIL import Image

#指定找到文件后,另存为的文件夹路径
outDir = os.path.abspath('C:/Users/Administrator/Desktop/EAD2019/ead2019_trainingData-I/test_xml')

#指定TXT文本的位置
txtDir1 = os.path.abspath('./VOC2007/ImageSets/Main/test.txt')

imgname1=[]
with open(txtDir1,'r') as f:
	for line in f:
		imgname1.append(line.strip('\n'))

#文件夹路径
imageDir2 = os.path.abspath('./VOC2007/Annotations')
image2 = []
imgname2 = []
imageList2 = glob.glob(os.path.join(imageDir2, '*.xml'))

for item in imageList2:
    image2.append(os.path.basename(item))

for item in image2:
    (temp1, temp2) = os.path.splitext(item)
    imgname2.append(temp1)

#匹配
for item1 in imgname1:
    for item2 in imgname2:
        if item1 == item2:
            dir = image2[imgname2.index(item2)]
            xmlname=os.path.join(imageDir2,dir)
            print(xmlname)
            shutil.copy(xmlname,outDir)

这样就可以了,然后统计改代码参数,训练就好啦。

猜你喜欢

转载自blog.csdn.net/xq920831/article/details/88868481
今日推荐