Метод для изменения координат ограничивающего прямоугольника - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть 8 баллов за каждое изображение в моем наборе данных (x1, y1, x2, y2, x3, y3, x4, y4).

Моя цель состоит в том, чтобы обучить сетчатку Retina, но хранилище требует, чтобы формат был похож на

path/to/image.jpg,x1,y1,x2,y2,class_name

они требуют только 4 балла, что-то вроде этого /data/imgs/img_001.jpg,837,346,981,456,cow

Мои 8 баллов за одно изображение выглядят так - [[220, 129], [1028,113], [1098,684], [206,706]

Можно ли как-нибудь конвертировать мои 8 очков в 4.

Заранее спасибо

1 Ответ

0 голосов
/ 05 ноября 2018

Предполагая, что четыре пары - это всего лишь четыре точки x, y на изображении, которые должны находиться в ограничительной рамке,

>>> vals = [[220, 129], [1028,113], [1098,684], [206,706]]
>>> bbox = [min([x[0] for x in vals]), min([x[1] for x in vals]),
...         max([x[0] for x in vals]), max([x[1] for x in vals])]
>>> print(bbox)
[206, 113, 1098, 706]
>>> imgpath = 'path/to/image.jpg'
>>> print('{},{},{}'.format(imgpath, ','.join(map(str, bbox)), 'clsname'))
path/to/image.jpg,206,113,1098,706,clsname
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...