在python中将多个边界框存储为列表

时间:2017-08-28 16:00:29

标签: python arrays python-2.7 object-detection

我正在编写一个代码,用于从图像中提取边界框,然后使用地面实况注释计算IoU。我对预测和基本事实的边界框坐标是列表 [xmin,ymin,xmax,ymax] 的形式。我编写了一个for循环,它从字典中提取边界信息,然后将其存储在列表中。

box = v7wpoint.boxidtobox[answer_boxid]
for key in box:
    #    print key
    xmin_gt = box.get('x')
    ymin_gt = box.get('y')
    height = box.get('height')
    width = box.get('width')
    final_bb = []
    xmax_gt = xmin_gt+width
    ymax_gt = ymin_gt+height
    bb_gt = [xmin_gt,ymin_gt,xmax_gt,ymax_gt]
    final_bb.append(bb_gt)

    rect_gt = np.array([[xmin_gt,ymin_gt],[xmin_gt,ymax_gt],[xmax_gt,ymax_gt],[xmax_gt,ymin_gt],[xmin_gt,ymin_gt]])
    plt.plot(rect_gt[:,0],rect_gt[:,1],'g',markersize=4)
    print (box.get('x'),box.get('y'),box.get('height'),box.get('width'),box.get('name'))

在这个for循环结束时,我只得到一个边界框信息 -  的 final_bb([XMIN,YMIN,XMAX,YMAX])即可。我需要一个列表,其中包含所有边界框坐标的列表。像这样的东西

1. [xmin,ymin,xmax,ymax]
2. [xmin,ymin,xmax,ymax]
3. [xmin,ymin,xmax,ymax]
.
.
.
N. [xmin,ymin,xmax,ymax]

我知道这是一个非常简单的问题,但我是python的新手,在python中操作数据结构时遇到了困难。

1 个答案:

答案 0 :(得分:0)

将赋值final_bb = []移到循环之前,否则结果列表将在每次迭代时被覆盖。

不包括完整代码,因为给出的样本对我来说仍然没有意义。