Python解析labelme标注的xml⽂件(bboundingbox)
搭配我之前写的⽣成tfrecord的⽂章,可以直接将labelme标注出来的xml⽂件解析出来,⽤于⽣成bboundingbox的tfrecod⽂件python解析json文件
import xmltodict
import json
import xml.dom.minidom as xmldom
from functools import reduce
import operator
import os
def LabelmeXmlGetCoordinate(LabelmeXmlPath):
AllcoordinateList = []
零基础学代码用什么书html5模板对seo的影响for file in [os.path.join(LabelmeXmlPath,item) for item in os.listdir(LabelmeXmlPath)]:
fileName = os.path.basename(file).split('.')[0]+'.jpg'
DOMTree = xmldom.parse(file)
collection = DOMTree.documentElement
金华免费模板建站# 获取尺⼨信息
imgSize = ElementsByTagName('size')
width = imgSize[0].getElementsByTagName('width')[0].childNodes[0].data
height = imgSize[0].getElementsByTagName('height')[0].childNodes[0].data
depth = imgSize[0].getElementsByTagName('depth')[0].childNodes[0].data
meager# 为了后⾯将box信息的列表添加进来后⽅便降成⼀维,创建⼆维数组
coordinateList = [[fileName,width,height,depth]]
imgObjects = ElementsByTagName('object')
# 获取bboundingbox信息
for imgObject in imgObjects:
label = ElementsByTagName('name')[0].childNodes[0].data
imgBox = ElementsByTagName('bndbox')[0]
xmin = ElementsByTagName('xmin')[0].childNodes[0].data
ymin = ElementsByTagName('ymin')[0].childNodes[0].data
xmax = ElementsByTagName('xmax')[0].childNodes[0].data
ymax = ElementsByTagName('ymax')[0].childNodes[0].data
bboxList = [xmin,ymin,xmax,ymax,label]
深圳前端培训机构有哪些coordinateList.append(bboxList)
# 将⼆维数据变成⼀维数组 eg:['l', '331', '257', '3', '65', '78', '234', '196', 'a', '258', '122', '300', '171', 'a']
coordinateList = reduce(operator.add, coordinateList)
AllcoordinateList.append(coordinateList)
print(coordinateList)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论