cvat for images 1.1 xml文件处理

xml文件实例

在这里插入图片描述

处理代码如下

import xml.etree.ElementTree as ET
import numpy as np
import json
import math
from collections import Counter

def read_xml_annotation(root_path):  # (源xml文件夹地址和文件夹内所有图像名称)
    in_file = open(root_path)
    tree = ET.parse(in_file)
    root = tree.getroot()
    a = set()
   
    for i,image in enumerate(root.findall("image")):
        tusimple_dict = {}
        image_infos = image.attrib
        
        tusimple_dict["lanes"] = []
        tusimple_dict["h_samples"] = []
        tusimple_dict["raw_file"] = 'clips'+"/0407/"+image_infos["name"]
        tusimple_dict["classes"] = []
        
        for polyline in image.findall("polyline"):
            polyline_infos = polyline.attrib
            
            if polyline_infos["label"] == "dash":
            	polyline_infos["label"] = 1 
            elif polyline_infos["label"] == 'diversion':
                polyline_infos["label"] = 4

            direction = root.find(".//polyline/attribute[@name='direction']").text
            relation = root.find(".//polyline/attribute[@name='relation']").text
            IDnumber = root.find(".//polyline/attribute[@name='ID']").text
            color = root.find(".//polyline/attribute[@name='color']").text
            
            print("11111",direction)
            print("22222",relation)
            print("33333",IDnumber)
            print("44444",color)

            if direction == "forward":
            	tusimple_dict["classes"].append(polyline_infos["label"])
                tusimple_dict["lanes"].append(polyline_infos["points"])
            
        output,indexs_mapping = deal_points_data(tusimple_dict["lanes"])
        
        h_samples = list(range(160, 720, 10)) # range(start,end,step)

        tusimple_dict["h_samples"] = h_samples
        # for label in tusimple_dict["classes"]:
            
        #     a.add(label)
        
        # else:
        #     fw = open("label_data_0407_withclasses.json", "a+")
            
        #     tusimple_dict["classes"] = ' '.join(map(str, tusimple_dict["classes"]))
        #     print("last question",tusimple_dict["classes"])
        fw = open("label_data_0407_with.json", "a+")
        json.dump(tusimple_dict, fw, ensure_ascii=False)
        fw.write("\n")
        
# for i in range(1,6):
    # xml_root = "D:/CDXdataTransform/datasets/annotations/annotations0{}.xml".format(str(i))
    # read_xml_annotation(xml_root)

xml_root = "E:/CDXdata/datasets/annotations/annotations.xml"
read_xml_annotation(xml_root)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值