微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据指定标签的xml文件选出对应标签的图片

# coding=utf-8
"""选出指定标签的xml文件"""
# """选出对应标签图片"""
import os
import os.path
import xml.dom.minidom
import shutil
import sys

path = "F:/aiuc/在批量xml标签中选出指定标签和对应图片/workcloth_person/3"
newpath = "\\new\\label"

# label_path = "C:\\Users\\AS\\Desktop\\new\\label"
# image_path = "C:\\Users\\AS\\Desktop\\new\\JPEGImages"
# image_new_path = "C:\\Users\\AS\\Desktop\\new\\image"
files = os.listdir(path)  # 得到文件夹下所有文件名称
# s = []
classes = {"work_cloth_identification"}
new = []


def selete_xml_file():
    j = 1
    for xmlFile in files:
        # 遍历文件夹
        j = j + 1
        fp = os.path.join(path, xmlFile)
        # print(fp)
        portion = os.path.splitext(xmlFile)
        if not os.path.isdir(xmlFile):
            # 判断是否是文件夹,不是文件夹才打开
            # print (xmlFile)

            # xml文件读取操作

            # 将获取的xml文件名送入到dom解析
            dom = xml.dom.minidom.parse(os.path.join(path, xmlFile))
            ###最核心的部分os.path.join(path,xmlFile),路径拼接,输入的是具体路径
            root = dom.documentElement
            name = root.getElementsByTagName('name')
            # print(name)
            # pose=root.getElementsByTagName('pose')
            # 重命名class name
            for i in range(len(name)):
                # print (name[i].firstChild.data)
                # print(xmlFile)
                # if name[i].firstChild.data=="one":
                if name[i].firstChild.data in classes:
                    print("jjjjj")
                    newfp = os.path.join(newpath, os.path.basename(fp))
                    shutil.copyfile(fp, newfp)
                    print(j)
                    # new.append(fp)


def selete_image_file():
    k = 0
    # image_file = os.listdir(image_path)
    # list = os.listdir(newpath)
    list = []
    for label in os.listdir(label_path):
        label = label.split('.', 1)[0]
        list.append(label)

    for image in os.listdir(image_path):
        print(image)
        image_name = image.split('.', 1)[0]
        print(image_name)
        if image_name in list:
            k = k + 1
            print(k)
            newfp = os.path.join(image_new_path, os.path.basename(image))
            image = os.path.join(image_path, image)
            print(image)
            print(newfp)
            shutil.copyfile(image, newfp)
            print(k)


#selete_image_file()
selete_xml_file()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。