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)
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文件),数据保存按照文件夹保存,经测试,可直接用作目标检测数据集,无需额外处理。 图像分辨率为 4000*3000 的RGB图片 【数据集介绍】农场饲养牛的品牌检测数据,类别:cow_brand 【数据总大小】208 MB 【数据集详情】data目录下分为两个目录,images存放数据图片,共334张jpg图片。labels目录存放标注文件,共有334个xml文件。 【json文件】类别的json文件 为了方便查看数据,提供了可视化py文件,随机传入一张图片即可绘制边界框,并且保存在当前目录。脚本无需更改,可以直接运行!
资源推荐
资源详情
资源评论
收起资源包目录
目标检测数据集:大分辨率下的单类别牛品牌检测数据集(VOC标注格式的xml文件) (671个子文件)
275.jpg 1.32MB
94.jpg 1.3MB
324.jpg 1.3MB
11.jpg 1.25MB
256.jpg 1.25MB
255.jpg 1.24MB
44.jpg 1.23MB
286.jpg 1.23MB
86.jpg 1.22MB
161.jpg 1.22MB
333.jpg 1.22MB
330.jpg 1.19MB
48.jpg 1.18MB
309.jpg 1.18MB
125.jpg 1.18MB
28.jpg 1.16MB
39.jpg 1.16MB
58.jpg 1.15MB
88.jpg 1.15MB
124.jpg 1.14MB
155.jpg 1.14MB
64.jpg 1.14MB
230.jpg 1.14MB
305.jpg 1.14MB
105.jpg 1.14MB
276.jpg 1.14MB
250.jpg 1.13MB
59.jpg 1.13MB
129.jpg 1.13MB
210.jpg 1.13MB
182.jpg 1.12MB
172.jpg 1.12MB
262.jpg 1.1MB
191.jpg 1.1MB
185.jpg 1.1MB
26.jpg 1.09MB
331.jpg 1.09MB
138.jpg 1.09MB
120.jpg 1.09MB
301.jpg 1.09MB
53.jpg 1.08MB
76.jpg 1.07MB
179.jpg 1.07MB
222.jpg 1.07MB
115.jpg 1.06MB
242.jpg 1.06MB
25.jpg 1.06MB
165.jpg 1.06MB
277.jpg 1.06MB
47.jpg 1.05MB
1.jpg 1.05MB
284.jpg 1.05MB
133.jpg 1.05MB
17.jpg 1.02MB
287.jpg 1.02MB
42.jpg 1MB
23.jpg 1MB
239.jpg 1MB
111.jpg 1016KB
148.jpg 1010KB
30.jpg 999KB
163.jpg 992KB
156.jpg 992KB
5.jpg 991KB
38.jpg 991KB
82.jpg 985KB
99.jpg 985KB
283.jpg 968KB
334.jpg 954KB
261.jpg 950KB
213.jpg 946KB
107.jpg 943KB
106.jpg 939KB
62.jpg 936KB
279.jpg 934KB
240.jpg 934KB
258.jpg 933KB
298.jpg 931KB
209.jpg 929KB
254.jpg 927KB
205.jpg 927KB
180.jpg 927KB
136.jpg 925KB
160.jpg 920KB
225.jpg 919KB
118.jpg 919KB
60.jpg 917KB
127.jpg 915KB
162.jpg 913KB
84.jpg 911KB
289.jpg 909KB
327.jpg 904KB
193.jpg 903KB
143.jpg 902KB
119.jpg 902KB
188.jpg 899KB
157.jpg 898KB
159.jpg 897KB
102.jpg 896KB
314.jpg 885KB
共 671 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
听风吹等浪起
- 粉丝: 1w+
- 资源: 1242
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功