from lxml import etree
import cv2
# https://blog.csdn.net/qq_44886601/article/details/135400117
# 读取 xml 文件信息,并返回字典形式
def parse_xml_to_dict(xml):
if len(xml) == 0: # 遍历到底层,直接返回 tag对应的信息
return {xml.tag: xml.text}
result = {}
for child in xml:
child_result = parse_xml_to_dict(child) # 递归遍历标签信息
if child.tag != 'object':
result[child.tag] = child_result[child.tag]
else:
if child.tag not in result: # 因为object可能有多个,所以需要放入列表里
result[child.tag] = []
result[child.tag].append(child_result[child.tag])
return {xml.tag: result}
# xml 标注文件的可视化
def xmlShow(img, xml, save=True):
image = cv2.imread(img)
with open(xml, encoding='gb18030', errors='ignore') as fid: # 防止出现非法字符报错
xml_str = fid.read()
xml = etree.fromstring(xml_str.encode('utf8'))
data = parse_xml_to_dict(xml)["annotation"] # 读取 xml文件信息
ob = [] # 存放目标信息
for i in data['object']: # 提取检测框
name = str(i['name']) # 检测的目标类别
bbox = i['bndbox']
xmin = int(bbox['xmin'])
ymin = int(bbox['ymin'])
xmax = int(bbox['xmax'])
ymax = int(bbox['ymax'])
tmp = [name, xmin, ymin, xmax, ymax] # 单个检测框
ob.append(tmp)
# 绘制检测框
for name, x1, y1, x2, y2 in ob:
cv2.rectangle(image, (x1, y1), (x2, y2), color=(255, 0, 0), thickness=2) # 绘制矩形框
cv2.putText(image, name, (x1, y1 - 10), fontFace=cv2.FONT_HERSHEY_SIMPLEX,
fontScale=0.5, thickness=1, color=(0, 0, 255))
# 保存图像
if save:
cv2.imwrite('result.png', image)
# # 展示图像
# cv2.imshow('test', image)
# cv2.waitKey()
# cv2.destroyAllWindows()
if __name__ == "__main__":
import os
import random
img_path = './data/images/' # 传入图片
image = [os.path.join(img_path, i) for i in os.listdir(img_path)]
r = random.randint(0, len(image) - 1) # 生成随机索引
image_path = image[r]
labels_path = image_path.replace('images', 'labels') # 自动获取对应的 xml 标注文件
labels_path = labels_path.replace('.jpg', '.xml')
xmlShow(img=image_path, xml=labels_path, save=True)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目包含:飞机和鸟图像目标检测数据集(VOC标注格式的xml文件),数据保存按照文件夹保存,经测试,可直接用作目标检测数据集,无需额外处理。 图像分辨率为300-800的RGB图片,为5类别的飞机和鸟数据集 【数据集介绍】飞机和鸟数据集,类别:bird、airplane等5个类别 【数据总大小】5 MB 【数据集详情】data目录下分为两个目录。images存放数据图片,labels目录存放标注文件。共130张图像和130个xml标注文件 【json文件】类别的json文件 为了方便查看数据,提供了可视化py文件,随机传入一张图片即可绘制边界框,并且保存在当前目录。脚本无需更改,可以直接运行!
资源推荐
资源详情
资源评论
收起资源包目录
目标检测数据集:飞机和鸟目标检测数据集(VOC标注格式的xml文件) (263个子文件)
airplane(13).jpg 85KB
airplane(30).jpg 81KB
airplane(76).jpg 76KB
airplane(39).jpg 70KB
airplane(92).jpg 64KB
airplane(47).jpg 63KB
airplane(110).jpg 61KB
airplane(12).jpg 59KB
airplane(90).jpg 57KB
airplane(107).jpg 57KB
airplane(5).jpg 56KB
airplane(34).jpg 56KB
airplane(42).jpg 54KB
airplane(117).jpg 54KB
airplane(109).jpg 53KB
airplane(100).jpg 53KB
airplane(19).jpg 52KB
airplane(115).jpg 52KB
airplane(38).jpg 50KB
airplane(104).jpg 50KB
airplane(60).jpg 49KB
airplane(96).jpg 48KB
airplane(81).jpg 48KB
airplane(74).jpg 47KB
airplane(61).jpg 46KB
airplane(125).jpg 45KB
airplane(31).jpg 45KB
airplane(86).jpg 44KB
airplane(10).jpg 44KB
airplane(40).jpg 44KB
airplane(97).jpg 44KB
airplane(128).jpg 44KB
airplane(24).jpg 43KB
airplane(94).jpg 42KB
airplane(132).jpg 40KB
airplane(49).jpg 40KB
airplane(113).jpg 39KB
airplane(77).jpg 39KB
airplane(50).jpg 39KB
airplane(93).jpg 39KB
airplane(59).jpg 38KB
airplane(67).jpg 38KB
airplane(57).jpg 37KB
airplane(103).jpg 37KB
airplane(16).jpg 37KB
airplane(11).jpg 36KB
airplane(65).jpg 36KB
airplane(7).jpg 36KB
airplane(108).jpg 36KB
airplane(53).jpg 36KB
airplane(58).jpg 35KB
airplane(70).jpg 35KB
airplane(73).jpg 35KB
airplane(2).jpg 35KB
airplane(41).jpg 33KB
airplane(121).jpg 33KB
airplane(28).jpg 33KB
airplane(120).jpg 33KB
airplane(83).jpg 33KB
airplane(54).jpg 33KB
airplane(27).jpg 32KB
airplane(23).jpg 31KB
airplane(20).jpg 31KB
airplane(64).jpg 30KB
airplane(127).jpg 30KB
airplane(29).jpg 29KB
airplane(72).jpg 29KB
airplane(55).jpg 29KB
airplane(118).jpg 28KB
airplane(98).jpg 28KB
airplane(21).jpg 28KB
airplane(18).jpg 27KB
airplane(15).jpg 27KB
airplane(22).jpg 27KB
airplane(123).jpg 26KB
airplane(89).jpg 26KB
airplane(66).jpg 25KB
airplane(46).jpg 25KB
airplane(44).jpg 24KB
airplane(114).jpg 24KB
airplane(1).jpg 23KB
airplane(68).jpg 23KB
airplane(106).jpg 23KB
airplane(35).jpg 23KB
airplane(26).jpg 23KB
airplane(37).jpg 23KB
airplane(85).jpg 23KB
airplane(4).jpg 23KB
airplane(32).jpg 22KB
airplane(75).jpg 22KB
airplane(111).jpg 22KB
airplane(84).jpg 21KB
airplane(122).jpg 21KB
airplane(43).jpg 21KB
airplane(82).jpg 21KB
airplane(87).jpg 21KB
airplane(62).jpg 20KB
airplane(116).jpg 20KB
airplane(99).jpg 20KB
airplane(63).jpg 20KB
共 263 条
- 1
- 2
- 3
资源评论
Ai医学图像分割
- 粉丝: 2w+
- 资源: 2128
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JAVA的Springboot个人健康监控管理系统源码数据库 MySQL源码类型 WebForm
- 新增 Microsoft Word 文件
- uniapp酒店微信小程序.zip,期末大作业
- 个人博客,关于渗透测试和审计,请访问 leeyabug.top.zip
- 一键在原版Kali的Docker镜像中安装MSF等渗透测试工具.zip
- 一款辅助安全研发在日常工作中渗透测试、安全研究、安全开发等工作的工具! 程序支持Yaml格式的http请求模版.zip
- 广州数控928te说明书
- JAVA的SpringBoot智能停车微信小程序源码带数据库+文档数据库 MySQL源码类型 WebForm
- 一款让你眼前一亮的渗透测试工具.zip
- 一款基于python的渗透测试辅助工具.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功