以VOC2007为例:包含下面五个部分,分别图像标注信息和图像,我这里主要是根据给定的标注信息,将对应图像所属类别标注在图像上;

先看一下annotations中的数据:.xml是可扩展标记语言

以000002.xml为例,内容为:

<annotation><folder>VOC2007</folder><filename>000002.jpg</filename><source><database>The VOC2007 Database</database><annotation>PASCAL VOC2007</annotation><image>flickr</image><flickrid>329145082</flickrid></source><owner><flickrid>hiromori2</flickrid><name>Hiroyuki Mori</name></owner><size> //图像尺寸<width>335</width><height>500</height><depth>3</depth></size><segmented>0</segmented><object> // 对象<name>train</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox> // 边界框<xmin>139</xmin><ymin>200</ymin><xmax>207</xmax><ymax>301</ymax></bndbox></object>
</annotation>

根据xml中提供的信息进行提取对应的objects和bndbox;

import mxnet as mx
import xml.etree.ElementTree as ET
import matplotlib.pyplot as plt
# 在图像中绘制方框
from matplotlib.patches import Rectangle
import random
import cv2# 测试图像的标注文件和图像
xml_path = 'VOC_image_demo/000002.xml'
img_path = 'VOC_image_demo/000002.jpg'bbox = []
tree = ET.parse(xml_path)
root = tree.getroot()
objects = root.findall('object')
for object in objects:# 根据找出的object再进一步找出图像中的类别名name = object.find('name').text# xml中的标记信息中的bndboxbndbox = object.find('bndbox')# 对应坐标xmin = int(bndbox.find('xmin').text)ymin = int(bndbox.find('ymin').text)xmax = int(bndbox.find('xmax').text)ymax = int(bndbox.find('ymax').text)# 格式:类名:name+[坐标]bbox_i = [name,xmin,ymin,xmax,ymax]bbox.append(bbox_i)print(bbox)image_string = open(img_path,'rb').read()
image = mx.image.imdecode(image_string,flag=1).asnumpy()
# 显示原图
fig,ax = plt.subplots()
plt.imshow(image)
colors = dict()
for bbox_i in bbox:class_name = bbox_i[0]if class_name not in colors:# 随机生成颜色或者自己指定也可以colors[class_name] = (random.random(),random.random(),random.random())xmin = bbox_i[1]ymin = bbox_i[2]xmax = bbox_i[3]ymax = bbox_i[4]rect = Rectangle(xy=(xmin,ymin),width=xmax-xmin,height=ymax-ymin,edgecolor = colors[class_name],facecolor = 'None',linewidth = 3.5)plt.text(xmin,ymin-6,'{:s}'.format(class_name),bbox = dict(facecolor=colors[class_name],alpha = 0.5))ax.add_patch(rect)plt.axis('off')plt.savefig('VOC_image_demo/000002_groundtruth')

[['train', 139, 200, 207, 301]]

一、显示VOC2007数据集中的图像及标注信息相关推荐

  1. 8SimpleAdapter:一行显示的数据有图标

    SimpleAdapter:一行显示的数据有图标,文本等信息. SimpleAdapter(Context context, List<? extends Map<String, ?> ...

  2. 9 万张车辆图像及标注数据 - 数据堂

    9 万张车辆图像及标注数据 - 数据堂 https://www.datatang.com/dataset 1. 数据产品概述 车型分布:8 种车型 数据特点:车辆齐全,数据清晰,矩形框标注车牌 采集设 ...

  3. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解、使用gtExtras包添加一个图,显示表中某一列中的数字、并为类型数据添加图像符号标签

    R语言使用gt包和gtExtras包优雅地.漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解.使用gtExtras包添加一个图,显示表中某一列中的数字.并为类型数据添加图像符号标签 目 ...

  4. VB如何直接显示内存中的二进制图像数据

    有时在进行网络程序设计时,我们希望客户端接收到服务器传来的图像文件的二进制数组的,能够直接显示,而不是通过保存到临时文件后显示,其实通过COM的IPicture接口,在VB里非常容易做到,代码如下: ...

  5. jsf mysql_在JSF数据表中显示来自MySQL数据库的图像[关闭]

    小编典典 您可以使用来显示存储在中的图像byte[],而不管其byte[]来源(数据库,磁盘文件系统,网络等)如何.最简单的例子是: 指的是StreamedContent财产. 但是,这有一个陷阱,尤 ...

  6. VTK修炼之道13:数据读写_图像数据的读写

    1.前言 VTK应用程序所需的数据可以通过两种途径获取: 第一种是生成模型 ;第二种是从外部存储介质里导入相关的数据文件,(如vtkBMPReader读取 BMP图像) .VTK 也可以将程序中处理完 ...

  7. swift解析html数据类型,ios-Swift:以标签或textVi显示HTML数据

    ios-Swift:以标签或textVi显示HTML数据 我有一些HTML数据,其中包含标题,段落,图像和列表标签. 有没有一种方法可以在一个UITextView或UILabel中显示此数据? 12个 ...

  8. 中livechart显示大数据_Kaggle 大数据竞赛中的Tricks总结

    作者 | Prince Canuma 编译 | AI有道, ronghuaiyang 任何领域的成功都可以归结为一套小规则和基本原则,当它们结合在一起时会产生伟大的结果. 机器学习和图像分类也不例外, ...

  9. 海康相机SDK+halcon17(64位)+MFC+VS(64位)联合开发遇到的问题(在使用GenImage3Extern将RGB数据转换为halcon图像时出现异常情况处理)

    这几天遇到了问题就是在MFC中开发SDK,遇到了问题是: 1.回调函数中的原始图像没数据,但是图像的信息是有的 这个问题的主要原因在于海康相机的默认输出数据的格式是 YUYV ,并不是RGB的,因此需 ...

  10. html显示统计图数据模板_博客统计信息显示模板

    html显示统计图数据模板 One of the things that I do while drinking my morning coffee is to check the statistic ...

最新文章

  1. R语言ggplot2可视化:自定义设置X轴上的时间间隔(中断、以年为单位),使用scale_x_date()自定义设置坐标轴间隔和标签、添加标题、副标题、题注信息
  2. R语言广义线性模型泊松回归(Poisson Regression)模型
  3. (0098)iOS开发之应用间的分享系列(3)
  4. python好还是c+-嵌入式系统中,Python与C/C++哪方更为适用?
  5. python3下载慢-PIP 下载慢,给你Python3的pip换个源 一键换源
  6. 前端二十七:四彩边框
  7. 去除桌面图标蓝底的方法步骤
  8. C语言笔记:格式化输入输出(fprintf、fscanf、sscanf...)
  9. 移动端机器学习模型压缩也自动化了:腾讯新框架为自家模型加速50%
  10. python基础编程语法-编程入门02:Python基础语法
  11. C++ string构造函数和析构函数
  12. Novel-Ai本地部署教程
  13. 西安网络安全周 | 联软科技:论端点安全在零信任体系中的重要性
  14. http请求状态码有哪些?分别代表什么意思?
  15. ERROR: Could not build wheels for mujoco-py which use PEP 517 and cannot be installed directly
  16. seo优化notfallow有二种下拉菜单百度搜索引擎
  17. arcgis10.2以上版本转换测量队节点所在TXT为所需格式(arctoolbox-samples-features-creat featrure from text file所需要的面格式)
  18. C++爱心代码(红色)
  19. 怎么使用Git远程删除某个历史提交记录
  20. verbose=True

热门文章

  1. pp模块常用表 sap_SAP财务常用的PP模块事务代码清单
  2. 高速收费站简笔画_桥的简笔画有哪些
  3. 基于 OpenLayers3 实现的 HTML5 GIS 电信资源管理系统
  4. 昵图网源码php,【PHP】仿我图,千图,昵图网素材下载,素材销售平台最新宽屏商业版:含新版vip会员中心,全开源...
  5. Python 批量爬取猫咪图片实现千图成像
  6. 可能是史上最全的权限系统设计
  7. PyQt环境的搭建:安装python+pyqt+eric
  8. 十张图看懂华为IPD和LTC
  9. SoundPool控件
  10. Changer常用的软件