批量删除VOC的XML中的某些节点

本博客介绍了一段Python代码,用于处理VOC数据集中的XML标注文件,通过遍历并移除不属于预定义类别的对象标签,实现数据集的类别过滤。代码涉及XML解析、文件操作等技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import xml.etree.cElementTree as ET
import os
path_root = ['E:\data-VOC0712\VOC2007\Annotations',
             'E:\data-VOC0712\VOC2012\Annotations']

CLASSES = [
           "bottle",
           "cat", "chair",  "diningtable",
           "dog", "motorbike", "person",
           "pottedplant","sofa",
           "tvmonitor"]
for anno_path in path_root:
    xml_list = os.listdir(anno_path)
    for axml in xml_list:
        path_xml = os.path.join(anno_path, axml)
        tree = ET.parse(path_xml)
        root = tree.getroot()

        for child in root.findall('object'):
            name = child.find('name').text
            if not name in CLASSES:
                root.remove(child)

        tree.write(os.path.join('E:\data-myVOC0712\Annotations', axml))
 

转载:https://blog.youkuaiyun.com/qq_36735489/article/details/80732346

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值