-
Notifications
You must be signed in to change notification settings - Fork 0
/
CVAT_XML_Rectangle.py
37 lines (30 loc) · 1.25 KB
/
CVAT_XML_Rectangle.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import cv2
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import xml.etree.ElementTree as ET
import random
# Парсинг XML файла
tree = ET.parse('annotations.xml')
root = tree.getroot()
# Цикл по всем объектам в XML файле
for member in root.findall('image'):
image_name = member.get('name')
image = cv2.imread(image_name)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Создание фигуры и осей
fig, ax = plt.subplots(1)
# Отображение изображения
ax.imshow(image)
for box in member.findall('box'):
label = box.get('label')
xmin = float(box.get('xtl'))
ymin = float(box.get('ytl'))
xmax = float(box.get('xbr'))
ymax = float(box.get('ybr'))
# Создание прямоугольника
rect = patches.Rectangle((xmin, ymin), xmax - xmin, ymax - ymin,
linewidth=1, edgecolor='r', facecolor='none')
# Добавление созданного прямоугольника на изображение
ax.add_patch(rect)
# Отображение изображения с наложенными полигонами
plt.savefig(image_name + 'Rectangle.png')