from xml.dom.minidom import Document
a=[{'x': 975, 'y': 589, 'width': 90, 'height': 104}, {'x': 867, 'y': 590, 'width': 90, 'height': 102}, {'x': 759, 'y': 593, 'width': 89, 'height': 98}, {'x': 1309, 'y': 585, 'width': 96, 'height': 99}, {'x': 1315, 'y': 761, 'width': 91, 'height': 93}, {'x': 1085, 'y': 589, 'width': 84, 'height': 99}, {'x': 1196, 'y': 585, 'width': 90, 'height': 101}, {'x': 1211, 'y': 759, 'width': 78, 'height': 97}, {'x': 895, 'y': 771, 'width': 91, 'height': 93}, {'x': 793, 'y': 773, 'width': 81, 'height': 91}, {'x': 996, 'y': 768, 'width': 92, 'height': 97}, {'x': 1101, 'y': 767, 'width': 93, 'height': 95}, {'x': 1439, 'y': 584, 'width': 85, 'height': 97}]
b=['yb2_open', 'yb2_open', 'yb2_open', 'yb2_open', 'yb2_open', 'yb2_open', 'yb2_open', 'yb2_open', 'yb2_open', 'yb2_open', 'yb2_open', 'yb2_open', 'yb2_open']
shape = (2560,1920,3)
def bbox2points(bbox):
x, y, w, h = bbox
xmin = int(round(x))
xmax = int(round(x + w))
ymin = int(round(y))
ymax = int(round(y + h))
return xmin, ymin, xmax, ymax
def writeInfoToXml(shape, detections, labels):
# 创建dom文档
doc = Document()
annotation = doc.createElement("annotation")
doc.appendChild(annotation)
folder = doc.createElement('folder')
annotation.appendChild(folder)
folder_txt = doc.createTextNode("0")
folder.appendChild(folder_txt)
filename = doc.createElement('filename')
annotation.appendChild(filename)
filename_txt = doc.createTextNode("0")
filename.appendChild(filename_txt)
# ones#
source = doc.createElement('source')
annotation.appendChild(source)
database = doc.createElement('database')
source.appendChild(database)
database_txt = doc.createTextNode("0")
database.appendChild(database_txt)
size = doc.createElement("size")
annotation.appendChild(size)
width = doc.createElement("width")
size.appendChild(width)
width_text = doc.createTextNode(str(shape[1]))
width.appendChild(width_text)
height = doc.createElement("height")
size.appendChild(height)
height_text = doc.createTextNode(str(shape[0]))
height.appendChild(height_text)
depth = doc.createElement("depth")
size.appendChild(depth)
depth_text = doc.createTextNode("3")
depth.appendChild(depth_text)
for i, bbox in enumerate(detections):
bbox = bbox['x'], bbox['y'], bbox['width'], bbox['height']
label = labels[i]
left, top, right, bottom = bbox2points(bbox)
obj = doc.createElement("object")
name = doc.createElement("name")
name_text = doc.createTextNode(label)
name.appendChild(name_text)
difficult = doc.createElement("difficult")
difficult_text = doc.createTextNode("0")
difficult.appendChild(difficult_text)
bndbox = doc.createElement("bndbox")
xmin = doc.createElement("xmin")
xmin_text = doc.createTextNode(str(left))
xmin.appendChild(xmin_text)
ymin = doc.createElement("ymin")
ymin_text = doc.createTextNode(str(top))
ymin.appendChild(ymin_text)
xmax = doc.createElement("xmax")
xmax_text = doc.createTextNode(str(right))
xmax.appendChild(xmax_text)
ymax = doc.createElement("ymax")
ymax_text = doc.createTextNode(str(bottom))
ymax.appendChild(ymax_text)
bndbox.appendChild(xmin)
bndbox.appendChild(ymin)
bndbox.appendChild(xmax)
bndbox.appendChild(ymax)
obj.appendChild(name)
obj.appendChild(difficult)
obj.appendChild(bndbox)
annotation.appendChild(obj)
return doc
def main():
doc = writeInfoToXml(shape, a, b)
f = open("1.xml", "w")
f.write(doc.toprettyxml(indent=" "))
f.close()
if __name__ == '__main__':
main()
将yolov4推理的标签和坐标写入xml中
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 有时我会莫名其妙想着逝去的人如何和她牵挂的人心灵相犀呢?心灵感应、灵魂附体、托梦……。当儿子玩ipad时,我感受到...
- %纹理转顶点 %a=[];b=[];x0=[];y0=[]; yv = zeros(3,1); xv = yv;x...