当前位置: 首页 > news >正文

python实用脚本(二):删除xml标签下的指定类别

介绍

在目标检测中,有些时候会遇到标注好的类别不想要了的情况,这时我们可以运行下面的代码来批量删除不需要的类别节省时间。

代码实现:


import argparseimport xml.etree.ElementTree as ET
import osclasses = ['thin_smoke']def GetImgNameByEveryDir(file_dir, videoProperty):FileNameWithPath, FileName, FileDir = [], [], []for root, dirs, files in os.walk(file_dir):for file in files:if os.path.splitext(file)[1] in videoProperty:FileNameWithPath.append(os.path.join(root, file))  # 保存图片路径FileName.append(file)  # 保存图片名称FileDir.append(root[len(file_dir):])  # 保存图片所在文件夹return FileName, FileNameWithPath, FileDirdef GetBoxInfo(xmlfile):try:tree = ET.parse(xmlfile)root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)except:return False, 0else:tree = ET.parse(xmlfile)root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)for obj in root.findall('object'):print(xmlfile, obj.find('name').text, obj)if obj.find('name').text == 'fulll':obj.find('name').text = "full"print('-' * 66)tree.write(xmlfile)return 1def Process(ProcessDir):xmlDirs = ProcessDir  # + 'Labels/'FileName1, FileNameWithPath1, FileDir1 = GetImgNameByEveryDir(xmlDirs, '.xml')for k in range(len(FileName1)):annfile = xmlDirs + FileName1[k][:-4] + '.xml'result = GetBoxInfo(annfile)if __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argument('--ProcessDir', type=str, default='/home/build/smoke_ori/VOCdevkit/VOC2007/Annotations/')args = parser.parse_args()ProcessDir = args.ProcessDirProcess(ProcessDir)
http://www.lryc.cn/news/450787.html

相关文章:

  • vue3 父子组件调用
  • 线性模型到神经网络
  • 【架构】前台、中台、后台
  • Stable Diffusion 蒙版:填充、原图、潜空间噪声(潜变量噪声)、潜空间数值零(潜变量数值零)
  • ffmpeg录制视频功能
  • 【LeetCode】每日一题 2024_10_1 最低票价(记忆化搜索/DP)
  • [C++] 小游戏 征伐 SLG DNF 0.0.1 版本 zty出品
  • 黑马头条day7-app端文章搜索
  • 嵌入式必懂微控制器选型:STM32、ESP32、AVR与PIC的比较分析
  • Python selenium库学习使用实操二
  • 基于Hive和Hadoop的电信流量分析系统
  • 访问docker容器中服务的接口,报错提示net::ERR_CONNECTION_REFUSED
  • 【mysql相关总结】
  • uniapp 微信小程序 微信支付
  • CSS 效果:实现动态展示双箭头
  • Linux 创建开发用的账户
  • 检查一个CentOS服务器的配置的常用命令
  • Redis 简单的消息队列
  • C++:继承和多态,自定义封装栈,队列
  • Python多个set中的交集
  • 百度百科 X-Bk-Token 算法还原
  • RUST语言的初印象-从一个模拟登陆谈起-slint+reqwest+aes
  • HBase批量写入优化
  • 江协科技STM32学习- P19 TIM编码器接口
  • 文件上传、重定向、Gin路由
  • 躺平成长:微信小程序运营日记第二天
  • 三分钟速览:Node.js 版本差异与关键特性解析
  • git创建新分支
  • Chip-seq数据分析处理流程
  • spring boot3.2.x与spring boot2.7.x对比