解析VOC格式数据并转为yolo格式代码片段

import xml.etree.ElementTree as ET

def parseXml(filename):
    xml_file = open(filename)
    tree = ET.parse(xml_file)
    root = tree.getroot()
    w = int(root.find('size').find('width').text)
    h = int(root.find('size').find('height').text)
    print(w,h)
    lb = []
    for obj in root.iter('object'):
        name = obj.find('name').text
        xmlbox = obj.find('bndbox')
        x1 = int(xmlbox.find('xmin').text)
        x2 = int(xmlbox.find('xmax').text)
        y1 = int(xmlbox.find('ymin').text)
        y2 = int(xmlbox.find('ymax').text)
        center_x = (x1+x2)*0.5
        center_y = (y1+y2)*0.5
        cw = x2 - x1
        ch = y2 - y1

        if name=='name':
            info = [0,center_x/float(w),center_y / float(h),cw / float(w),ch / float(h)]
        else:
            info = [1, center_x / float(w), center_y / float(h), cw / float(w), ch / float(h)]
        lb.append(info)
    return lb

if __name__=='__main__':
    print(parseXml('vocface/016102.xml'))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值