import os import xml.etree.ElementTree as ET # 定义类别名称和ID映射关系 classes = {'1': 0} # 定义函数将坐标转换为YOLOv5格式 def convert(size, box): dw = 1.0/size[0] dh = 1.0/size[1] x = (box[0] + box[1])/2.0 - 1 y = (box[2] + box[3])/2.0 - 1 w = box[1] - box[0] h = box[3] - box[2] x = x * dw w = w * dw y = y * dh h = h * dh return (x, y, w, h) # 定义函数将XML文件转换为YOLOv5格式的TXT文件 def convert_annotation(xml_file, txt_file): tree = ET.parse(xml_file) root = tree.getroot() size = (int(root.find('size').find('width').text), int(root.find('size').find('height').text)) with open(txt_file, 'w') as f: for obj in root.iter('object'): cls = '1' # 只有一个类别 cls_id = classes[cls] xmlbox = obj.find('bndbox') b = (int(xmlbox.find('xmin').text), int(xmlbox.find('xmax').text), int(xmlbox.find('ymin').text), int(xmlbox.find('ymax').text)) bb = convert(size, b) f.write(str(cls_id) + " " +
yolov5的xml转txt
最新推荐文章于 2025-06-23 12:35:37 发布