python目标检测给图画框,bbox画到图上并保存

import os
import xml.dom.minidom
import cv2 as cv

ImgPath = ‘/Users/ll/Desktop/PyTorch-YOLOv3/data/custom/images/‘ #图片地址
AnnoPath = ‘/Users/ll/Desktop/PyTorch-YOLOv3/data/custom/labels/‘ #xml文件地址
save_path = ‘/Users/liting/Desktop/shumei/Image‘
def draw_anchor(ImgPath,AnnoPath,save_path):
imagelist = os.listdir(ImgPath)
for image in imagelist:

image_pre, ext = os.path.splitext(image)
imgfile = ImgPath + image
xmlfile = AnnoPath + image_pre + ‘.xml‘
# print(image)
# 打开xml文档
DOMTree = xml.dom.minidom.parse(xmlfile)
# 得到文档元素对象
collection = DOMTree.documentElement
# 读取图片
img = cv.imread(imgfile)

filenamelist = collection.getElementsByTagName("filename")
filename = filenamelist[0].childNodes[0].data
print(filename)
# 得到标签名为object的信息
objectlist = collection.getElementsByTagName("object")

for objects in objectlist:
# 每个object中得到子标签名为name的信息
namelist = objects.getElementsByTagName(‘name‘)
# 通过此语句得到具体的某个name的值
objectname = namelist[0].childNodes[0].data

bndbox = objects.getElementsByTagName(‘bndbox‘)
# print(bndbox)
for box in bndbox:
x1_list = box.getElementsByTagName(‘xmin‘)
x1 = int(x1_list[0].childNodes[0].data)
y1_list = box.getElementsByTagName(‘ymin‘)
y1 = int(y1_list[0].childNodes[0].data)
x2_list = box.getElementsByTagName(‘xmax‘) #注意坐标,看是否需要转换
x2 = int(x2_list[0].childNodes[0].data)
y2_list = box.getElementsByTagName(‘ymax‘)
y2 = int(y2_list[0].childNodes[0].data)
cv.rectangle(img, (x1, y1), (x2, y2), (255, 255, 255), thickness=2)
cv.putText(img, objectname, (x1, y1), cv.FONT_HERSHEY_COMPLEX, 0.7, (0, 255, 0),
thickness=2)
# cv.imshow(‘head‘, img)
cv.imwrite(save_path+‘/‘+image, img) #
if __name__ == "__main__":
draw_anchor(ImgPath,AnnoPath,save_path)

原文地址:https://www.cnblogs.com/happytaiyang/p/11792032.html

时间: 2024-10-20 14:58:06

python目标检测给图画框,bbox画到图上并保存的相关文章

10 行Python 代码,实现 AI 目标检测技术,真给力!

只需10行Python代码,我们就能实现计算机视觉中目标检测. from imageai.Detection import ObjectDetection import os execution_path = os.getcwd() detector = ObjectDetection() detector.setModelTypeAsRetinaNet() detector.setModelPath( os.path.join(execution_path , "resnet50_coco_b

目标检测基础

9.3 目标检测和边界框 %matplotlib inline from PIL import Image import sys sys.path.append('/home/kesci/input/') import d2lzh1981 as d2l # 展示用于目标检测的图 d2l.set_figsize() img = Image.open('/home/kesci/input/img2083/img/catdog.jpg') d2l.plt.imshow(img); # 加分号只显示图

【转】目标检测方法——R-FCN

目录 作者及相关链接 方法概括 方法细节 实验结果 总结 参考文献 作者及相关链接 作者: 作者链接:代季峰,何恺明,孙剑 论文链接:论文传送门 代码链接:matlab版,python版 方法概括 R-FCN解决问题--目标检测 整个R-FCN的结构 一个base的conv网络如ResNet101, 一个RPN(Faster RCNN来的),一个position sensitive的prediction层,最后的ROI pooling+投票的决策层 R-FCN的idea出发点(关键思想) 分类需

第三十六节,目标检测之yolo源码解析

在一个月前,我就已经介绍了yolo目标检测的原理,后来也把tensorflow实现代码仔细看了一遍.但是由于这个暑假事情比较大,就一直搁浅了下来,趁今天有时间,就把源码解析一下.关于yolo目标检测的原理请参考前面一篇文章:第三十五节,目标检测之YOLO算法详解 在讲解源码之前,我们需要做一些准备工作: 下载源码,本文所使用的yolo源码来源于网址:https://github.com/hizhangp/yolo_tensorflow 下载训练所使用的数据集,我们仍然使用以VOC 2012数据集

目标检测梳理:基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN(转)

基于深度学习的目标检测技术演进:R-CNN.Fast R-CNN.Faster R-CNN(转) 原文链接:https://www.cnblogs.com/skyfsm/p/6806246.html object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.object detection要解决的问题就是物体在哪里,是什么这整个流程的问题.然而,这个问题可不是那么容易解决的,物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方

基于深度学习的目标检测研究进展

前言 开始本文内容之前,我们先来看一下上边左侧的这张图,从图中你看到了什么物体?他们在什么位置?这还不简单,图中有一个猫和一个人,具体的位置就是上图右侧图像两个边框(bounding-box)所在的位置.其实刚刚的这个过程就是目标检测,目标检测就是"给定一张图像或者视频帧,找出其中所有目标的位置,并给出每个目标的具体类别". 目标检测对于人来说是再简单不过的任务,但是对于计算机来说,它看到的是一些值为0~255的数组,因而很难直接得到图像中有人或者猫这种高层语义概念,也不清楚目标出现在

基于深度学习的目标检测

普通的深度学习监督算法主要是用来做分类,如图1(1)所示,分类的目标是要识别出图中所示是一只猫.而在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)竞赛以及实际的应用中,还包括目标定位和目标检测等任务.其中目标定位是不仅仅要识别出来是什么物体(即分类),而且还要预测物体的位置,位置一般用边框(bounding box)标记,如图1(2)所示.而目标检测实质是多目标的定位,即要在图片中定位多个目标物体,包括分类和定位.比如对图1(3

【目标检测】Faster RCNN算法详解

Ren, Shaoqing, et al. "Faster R-CNN: Towards real-time object detection with region proposal networks." Advances in Neural Information Processing Systems. 2015. 本文是继RCNN[1],fast RCNN[2]之后,目标检测界的领军人物Ross Girshick团队在2015年的又一力作.简单网络目标检测速度达到17fps,在P

CS231n第八课:目标检测定位学习记录

结合视频第八集和笔记:http://chuansong.me/n/353443351445 本节课程从分类(Classification),定位(Localization)和检测(Detection)三个方面入手. 从上图可以直观的看到: 1.对于分类而言,就是对于给定的图片把其划分到给定的几种类别中某一种.很显然,图像中只能存在一种给定类别中的对象. 2.而定位就是找到对应的对象的位置区域,把它框选出来(即Bounding Box),这个选框除了位置信息(x,y)外还要包含其大小信息(w,h)