目标检测 - 如何在图片中标记Annotations中的坐标信息?
先看我们代码的效果:
原始图片:
加载坐标信息后的图片:
我的文件结构是这样的:
这是我用于处理的代码:
import os
import cv2 as cv
import xml.etree.ElementTree as ETdef xml_to_jpg(imgs_path, xmls_path, out_path):imgs_list = os.listdir(imgs_path) #读取图片列表xmls_list = os.listdir(xmls_path) # 读取xml列表if len(imgs_list) <= len(xmls_list): #若图片个数小于或等于xml个数,从图片里面找与xml匹配的print("标记点1")for imgName in imgs_list:temp1 = imgName.split('.')[0] #图片名 例如123.jpg 分割之后 temp1 = 123temp1_ = imgName.split('.')[1] #图片后缀if temp1_!='jpg' and temp1_ !='jpeg':continuefor xmlName in xmls_list: #遍历xml列表temp2 = xmlName.split('.')[0] #xml名temp2_ = xmlName.split('.')[1]if temp2_ != 'xml':continueif temp2!=temp1: #判断图片名与xml名是否相同continueelse: #不同的话 开始读取xml坐标信息img_path = os.path.join(imgs_path, imgName)xml_path = os.path.join(xmls_path, xmlName)img = cv.imread(img_path)labelled = imgroot = ET.parse(xml_path).getroot()for obj in root.iter('object'):bbox = obj.find('bndbox')xmin = int(bbox.find('xmin').text.strip())ymin = int(bbox.find('ymin').text.strip())xmax = int(bbox.find('xmax').text.strip())ymax = int(bbox.find('ymax').text.strip())labelled = cv.rectangle(labelled, (xmin, ymin), (xmax, ymax), (0, 0, 255), 2)cv.imwrite(out_path + '\\' +imgName, labelled)breakelse: # 若xml个数小于图片个数,从xml里面找与图片匹配的。下面操作与上面差不多print("标记点2")for xmlName in xmls_list:temp1 = xmlName.split('.')[0]temp1_ = xmlName.split('.')[1]if temp1_ != 'xml':continuefor imgName in imgs_list:temp2 = imgName.split('.')[0]temp2_ = imgName.split('.')[1] # 图片后缀if temp2_ != 'png':continueif temp2 != temp1:continueelse:img_path = os.path.join(imgs_path, imgName)xml_path = os.path.join(xmls_path, xmlName)img = cv.imread(img_path)labelled = imgroot = ET.parse(xml_path).getroot()for obj in root.iter('object'):bbox = obj.find('bndbox')xmin = int(bbox.find('xmin').text.strip())ymin = int(bbox.find('ymin').text.strip())xmax = int(bbox.find('xmax').text.strip())ymax = int(bbox.find('ymax').text.strip())labelled = cv.rectangle(labelled, (xmin, ymin), (xmax, ymax), (0, 0, 255), 1)print(out_path + imgName)cv.imwrite(out_path + imgName, labelled)break
if __name__ == '__main__':imgs_path = r'./A/' #图片路径xmls_path = r'./B_xml/' #xml路径retangele_img_path = './pic_out/' #保存画框的路径xml_to_jpg(imgs_path, xmls_path, retangele_img_path)
目标检测 - 如何在图片中标记Annotations中的坐标信息?相关推荐
- 深度学习论文阅读目标检测篇(七)中英对照版:YOLOv4《Optimal Speed and Accuracy of Object Detection》
深度学习论文阅读目标检测篇(七)中英对照版:YOLOv4<Optimal Speed and Accuracy of Object Detection> Abstract 摘要 1. In ...
- 深度学习论文阅读目标检测篇(五)中英对照版:YOLOv2《 YOLO9000: Better, Faster, Stronger》
深度学习论文阅读目标检测篇(五)中文版:YOLOv2< YOLO9000: Better, Faster, Stronger> Abstract 摘要 1. Introduction 1. ...
- 红外小目标:基于深度学习的红外小目标检测研究方法(持续更新中)
深度学习红外小目标研究现状_2021.7.6更新 2019年 TBC-Net(TBC-Net: A real-time detector for infrared small target detec ...
- 旋转目标检测综述(持续更新中)
文章目录 前言(所有检测模型) 四.R^2CNN(17年) 1.表示方法 2.亮点一:增加anchor 3.亮点二:增加多尺度的ROIPooling.斜框FC 4.亮点三:斜NMS 5.损失函数.实验 ...
- 目标检测之Loss:FasterRCNN中的SmoothL1Loss
多任务损失(来自Fast R-CNN) multi-task数据结构 Fast R-CNN网络有两个同级输出层(cls score和bbox_prdict层),都是全连接层,称为multi-task ...
- 【深度学习】什么是目标检测中的平均精度均值(mAP)?
计算机视觉界已经集中在度量 mAP 上,来比较目标检测系统的性能.在这篇文章中,我们将深入了解平均精度均值 (mAP) 是如何计算的,以及为什么 mAP 已成为目标检测的首选指标. 目标检测的快速概述 ...
- 2021综述:一般目标检测中的遮挡处理
目录 综述:通用对象检测中的遮挡处理 1.简介 2.目标检测的应用 3.数据集 4.户外场景的遮挡处理 A.数据收集 B.遮挡检测 C.生成遮挡区域 D.遮挡目标检测 5.室内场景中的遮挡处理 A.场 ...
- 什么是目标检测中的平均精度均值(mAP)?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 计算机视觉界已经集中在度量 mAP 上,来比较目标检测系统的性能. ...
- 深度神经网络在基于视觉的目标检测中的应用
简 介: 目标检测是计算机视觉的一个重要应用方向,深度神经网络的提出极大地帮助基于视觉的目标检测提高了准确度.自2014年以来,深度神经网络在基于视觉的目标检测中被广泛应用,出现了多种算法.本文分别讨 ...
最新文章
- Python RPi GPIO编程控制
- 一步一步写算法(之prim算法 中)
- 性能测试知多少---并发用户
- 2018年国内就业薪资高的7大编程语言排行
- C# 学习笔记(12)hex文件转bin文件小工具
- 生成建表脚本up_CreateTable
- TopFreeTheme精选免费模板【20130701.特别版】
- 这可能是最全面的 python 字符串拼接总结!多种方法选最优
- MongoDB 计划从“Data Sprawl”中逃脱
- html引用本地图片不能是桌面的,Img标签与本地文件:/// URL不显示在Microsoft Edge Web浏览器...
- python利用thinker制作多页面切换的桌面应用实例教程
- webpack Plugin常用 optimization splitChunks UglifyJsPlugin sourceMap
- 计算机能帮助我学英语翻译,英语翻译以下几个句子,帮忙把汉语翻译成英语,请不要用软件翻!1、计算机能帮助人们从事复杂的计算.几十年前可能需要数月完成...
- 从网络上下载文件到本地
- 关于循环经济的三维展示
- 【转(比较全面)】CSS3弹性盒模型之Flexbox是布局模块box-sizing box-orient box-direction box-ordinal-group
- Linux自学之旅-安装篇(一)
- jmeter 中 Client implementation HttpClient4和java区别实践一
- 分布式存储学习入门(一)
- 收集利用 Kotlin 进行 Android 开发的开源库,扩展,工具,开源项目,资料等高质量资源
热门文章
- LCD显示原理和驱动方式介绍
- Win10下VisualStudio2019安装和Helloworld测试
- mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验
- 下次激活策略10_巅峰武侠卡牌巨制手游乱世江湖1元商城特权bt版今日10:00上线_乱世江湖...
- 双屏鼠标经常跑到副屏_1+1gt;2,让ipad变成你的电脑副屏
- c语言第1章ppt,c语言第1章课件.ppt
- html抽取正文内容 c++,如何用C/C++获取html或shtml文件的内容?
- php缩图代码是什么,php生成缩略图示例代码分享(使用gd库实现)
- java监听变量的变化_[Java学习小记]使用PropertyChangeSupport来监听变量的变化
- pycharm 中写代码的提示的前符号 p,m ,c,v, f 是什么意思