先贴出代码:

import shutil
import os
import xml.etree.ElementTree as ETAnnotations_path = r"E:/data/voc/VOCdevkit/VOC2007/Annotations"
image_path = r"E:/data/voc/VOCdevkit/VOC2007/JPEGImages"
save_img_path = r"E:/data/voc/VOCdevkit/VOC2007/tte/"
save_xml_path = r"E:/data/voc/VOCdevkit/VOC2007/xml/"
classes = [ 'car', 'horse', 'cat', 'dog','bird','sheep', 'cow']
def get_my_classes(Annotations_path,image_path,save_img_path,save_xml_path,classes):xml_path = os.listdir(Annotations_path)for i in classes:if not os.path.exists(save_img_path+"/"+i):os.mkdir(save_img_path+i)if not os.path.exists(save_xml_path+"/"+i):os.mkdir(save_xml_path+i)for xmls in xml_path:print(Annotations_path+"/"+xmls)in_file = open(os.path.join(Annotations_path,xmls))print(in_file)tree = ET.parse(in_file)root = tree.getroot()
#         print(root)xml_class = []# 这里是要求每一个xml文件(图片)只能有单独的一个类if len(set(root.iter('object'))) != 1:continuefor obj in root.iter('object'):cls_name = obj.find('name').textprint(cls_name)try:shutil.copy(image_path+"/"+xmls[:-3]+"jpg" , save_img_path+"/"+cls_name+"/"+xmls[:-3]+"jpg")shutil.copy(Annotations_path+"/"+xmls , save_xml_path+"/"+cls_name+"/"+xmls)except:continueget_my_classes(Annotations_path,image_path,save_img_path,save_xml_path,classes)

详解:

  • Annotations_path:这是你xml文件存储的位置,也就是你的这个文件夹

  • save_img_path:这是你提取特定类后,其每一类的图片存放的位置,如图我提取了以下几类。

  • image_path:这就是你voc数据集所有图片的位置目录

  • save_xml_path:是你保存每一类xml的位置

  • classes:这是你要提取的几个类

注:
这里是要求每一个xml文件(图片)里只能有单独的一个类,也就是如果一张图片里有多种物体,我们直接break,进入下一个xml。

提取voc数据集中特定的类相关推荐

  1. 数据如何变成知识,第 3 部分 提取暗数据

    在我的上一篇文章中,您了解了数据湖如何允许存储大量多格式数据,从而帮助加速数据摄入和降低摄入成本.廉价存储技术的出现,使组织能更轻松.更便宜地存储大量数据. 组织存储数据有许多原因,通常是为了保留记录 ...

  2. 数据如何变成知识(3):提取暗数据

    转发自IBM社区:https://www.ibm.com/developerworks/cn/analytics/library/ba-data-becomes-knowledge-3/index.h ...

  3. 21天Python学习——lxml库与Xpath提取网页数据

    ​ ​ 活动地址:CSDN21天学习挑战赛 一.爬虫提取网页数据的流程图 图源:100天精通Python(爬虫篇)--第45天:lxml库与Xpath提取网页数据_无 羡ღ的博客-CSDN博客_pyt ...

  4. 长文 | 从发展轨迹、社会变迁和人口数据变化来看工具类产品的发展出路有哪些(1)

    7月25日,我看到"腾讯某GM|工具类产品,未来发展的出路有哪些?"这个问题觉得很有意思,下面是我对这个问题的回答,希望有更多道友能参与进来分享. 我对这个问题很感兴趣,最近花了不 ...

  5. 一步一步教你抓数据——用.net精确提取网站数据的通用方法 [转]

    一步一步教你抓数据--用.net精确提取网站数据的通用方法 [转] 2008年02月23日 星期六 16:53 具体实现思路: 1 首先用WebClient类下载网页源码 public static ...

  6. 用Aspose.Words 从Word文档中提取表格数据

    用Aspose.Words 从Word文档中提取表格数据 对于某些项目,开发人员需要从Word文档中提取数据并导出到数据库.最大的挑战是必须支持现有Word文档. 相同格式且带多个数据块的Word文档 ...

  7. asp.net 获取全部在线用户_提取在线数据的9个最佳网页抓取工具

    Web Scraping工具专门用于从网站中提取信息.它们也被称为网络收集工具或Web数据提取工具. Web Scraping工具可以在各种场景中用于无限目的. 比如: 1.收集市场研究数据 网络抓取 ...

  8. 怎么提取pdf中的表格数据_如何从pdf第1部分中提取表格数据

    怎么提取pdf中的表格数据 In this article, we talk about the challenges and principles of extracting tabular dat ...

  9. java索引图片,索引从图片中提取像素数据的代码的错误

    我使用Python Imaging Library和Numpy运行以下代码,从图片中的特定感兴趣区域中提取像素数据 . 以下代码应该采用尺寸w乘以h的多张图片,切割宽度a(水平)和b(垂直)的边距,并 ...

最新文章

  1. mysql切换用户命令_linux基础04:linux用户相关的命令有哪些?怎样切换用户?
  2. 荣耀30s鸿蒙5g,荣耀赵明:荣耀30S将掀起5G手机购买狂潮
  3. java误解问题_关于Java的10个误解
  4. PetShop4,错误提示:System.Web.Security.SqlMembershipProvider”要求一个与架构版本“1”兼容的数据...
  5. Nginx的location指令
  6. 世界大百科全书!耶鲁大学教授再出神作!用1000幅图片,讲明白45亿年历史......
  7. 无法开启计算机,Win7下鼠标右键无法开启计算机属性怎么办?
  8. 2018数学建模A题的简单指导
  9. 几种无线充电解决方案特点及原理图
  10. JAVA基础知识点大全之一
  11. 手把手带你SQLite3快速入门
  12. 某站的视频下载与合并,m4s的处理。
  13. CentOS7防火墙关闭
  14. 基于Selenium和ChromeDriver的自动化页面性能测试
  15. 安焦删除贴 牛人纷纷出现(1)
  16. java测试smtp连接失败_java – MailConnectException:无法连接到主机,端口:smtp.sendgrid.net...
  17. ERP开发使用Flex
  18. 多类别分类——吴恩达课程作业python代码实现
  19. 某公司申请到一个C类IP地址,但要连接6个的子公司,最大的一个子公司有 26台计算机,每个子公司在一个网段中,则子网掩码应设为?
  20. 多线程 ---- 线程的通信

热门文章

  1. 图像处理中ct图的通道是多少_新一代安检CT机,智能安防领域又一明星产品
  2. 思科计算机网络题目及翻译3,思科计算机网络题目及翻译1.doc
  3. 运维在浏览器搜索linux日志,Graylog日志管理系统---搜索查询方法使用简介
  4. 老年机按键串号_为什么老人机依然很多人在用?
  5. java实现手机充电_java – 如何知道手机是否正在充电
  6. linux下expdp定时备份_Linux下定时任务的配置
  7. percona zabbix mysql_zabbix采用percona监控mysql主从
  8. python中如何追加_如何在Python中将元素添加到列表中-追加,扩展和插入
  9. linux4.9下alsa架构,[Alsa]4, wm8524 Kernel音频子系统入口
  10. memcache java client_Memcache的客户端连接系列(一) Java