1.安装opencv
windows10打开cmd敲入pip install opencv-python(等待下载完成后键入import cv2不报错代表下载成功)
2.在vscode中配置opencv
下载完后,opencv应该会被保存在python文件夹的Lib文件夹下面的site-packages文件夹中。打开site-packages找到一个叫做cv2的文件夹,复制其中的一个叫做带有cv2.cp37-win_amd64.pyd的文件,然后找到自己的python工作空间也就是自己新建的.py保存的文件夹下粘贴。同时在这个文件夹中创建一个XXX.py的文件里面输入代码
import os
import xml.dom.minidom
import cv2 as cv
ImgPath = 'C:\\Users\\admin\\Desktop\\images\\'
AnnoPath = 'C:\\Users\\admin\\Desktop\\xmls\\'
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 = 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')
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), (0, 0, 255), thickness=2)
cv.imwrite(imgfile , img)