Pythonopencv在图像上画XML对应的框主要⽤于显⽰数据集的标注是否正确。
只写了显⽰的部分,并未保存图⽚,⽽且由于只有⼀个分类,并未在框上写明类别
import os
import xml.dom.minidom
import cv2
ElementTree as ET
classes = ["phone"] # XML⽂件中的所有类别
ImgPath = 'D:/Wei X/data/phone image/' # 图⽚⽂件夹路径
python处理xml文件AnnoPath = 'D:/Wei X/data/phone xml/' # xml⽂件夹路径,xml⽂件名与图⽚⼀致
# ProcessedPath = 'D:/Wei X/data/output/' # 输出图像路径
imagelist = os.listdir(ImgPath)
for image in imagelist:
image_pre, ext = os.path.splitext(image) # 分离⽂件名与扩展名
imgfile = ImgPath + image
xmlfile = AnnoPath + image_pre + '.xml'
# 打开xml⽂档
DOMTree = xml.dom.minidom.parse(xmlfile)
# 得到⽂档元素对象
collection = DOMTree.documentElement
# 读取图⽚
img = cv2.imread(imgfile)
tree = ET.parse(xmlfile)
root = t()
size = root.find('size')
w = int(size.find('width').text)
h = int(size.find('height').text)
for obj in root.iter('object'):
cls = obj.find('name').text
if cls not in classes:
continue
cls_id = classes.index(cls)
xmlbox = obj.find('bndbox')
b = (int(xmlbox.find('xmin').text), int(xmlbox.find('xmax').text), int(xmlbox.find('ymin').text),
int(xmlbox.find('ymax').text))
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论