我的数据集中的每个图像都有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。
预先感谢
答案 0 :(得分:1)
假设这四对只是图像中应该位于边界框中的四个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