xml文件实例
![在这里插入图片描述](https://img-blog.csdnimg.cn/f4ba345dd7ae47fc93bfe8141c53ab8e.png)
处理代码如下
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)