将两个值添加到列表中的一个键并将列表添加到字典中

特内什·维尼桑

我试图在检测到边界框时获取中心坐标,并将其存储在每个 FPS 的列表中。然后对于列表的每个检测到的中心坐标,我想将它存储在字典中。

列表的输出应该像 center_coord = ["point1" : [x1, y1], "point2" : [x2, y2], ........ ]

从该列表中,我想将它附加到一个字典中,例如 box_center = {"point1" : [x1, y1], "point2" : {x2, y2],.....}

import cv2
from darkflow.net.build import TFNet
import numpy as np
import time
from collections import defaultdict
options = {
    'model': 'cfg/yolov2.cfg',
    'load': 'bin/yolov2.weights',
    'threshold': 0.8,
    'gpu': 0.8
}

tfnet = TFNet(options)
colors = [tuple(255 * np.random.rand(3)) for _ in range(10)]

capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
box_center = defaultdict(list) #to store the list of center coordinates
center_coord = [] #to store the center coordinate at each FPS

while True:
    stime = time.time()
    ret, frame = capture.read()
    if ret:
        results = tfnet.return_predict(frame)
        for color, result in zip(colors, results):
            tl = (result['topleft']['x'], result['topleft']['y'])
            br = (result['bottomright']['x'], result['bottomright']['y'])
            center_x = ((tl[0] + br[0])/2)  #Here it gets the midpoint of two X coordinates
            center_y = ((tl[1] + br[1])/2)  #Here it gets the midpoint of two Y coordinates
            center_coord.append([center_x, center_y]) #Here i append the X and Y coordinate in a list

            label = result['label']
            confidence = result['confidence']
            text = '{}: {:.0f}%'.format(label, confidence * 100)
            frame = cv2.rectangle(frame, tl, br, color, 5)
            frame = cv2.putText(frame, text, tl, cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 0), 2)
        cv2.imshow('frame', frame)
        print('FPS {:.1f}'.format(1 / (time.time() - stime)))
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

capture.release()
cv2.destroyAllWindows()
大师

抱歉,列表在 Python 中不起作用。改用 namedTuple,这应该可以解决您的挑战。无论如何,命名元组通常与坐标相关问题结合使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从两个大小相同的单独列表中将键和值添加到字典中

如何仅将另一个列表中的值添加到字典中

将一个键添加到列表中的所有值

在Excel中合并两个列表,并将新值添加到旧值

将两个不同类型的列表添加到另一个列表中

将两个列表添加到字典中,并允许合并具有相似标题的值

将两个列表添加到一个列表

匹配两个字典的键(一个嵌套)然后将值添加到内部嵌套字典

将值添加到匹配谓词的第一个列表(的列表中)

将值添加到上一个列表中的列表更改元素

如何将两个列表组合成键和值并添加到字典?

如何基于Python中的匹配键将键值对添加到另一个字典列表中的现有字典列表中

将两个字典值合并为一个,然后将其添加到Python中的另一个字典中

将当前值添加到列表中,然后与最后一个值进行比较

将一个列表添加到Java中的另一个列表?

在两个列表上执行查找并根据条件将第二个列表中的元素添加到第一个列表

Groovy:如何将一个列表作为键添加,并将另一个列表作为值添加到Map

在两个向量中的值之间过滤数据框并将结果添加到 R 中的列表

将一个字典列表的键和值添加到另一个字典列表

如何将键 1 的值添加到字典中的另一个键中以构建数组?

尝试将2个文件添加到要读取的单独列表中,我需要将两个文件合并为一个列表

仅添加到词典中的一个列表

如何将列表中的列表添加到另一个列表

将临时列表添加到另一个列表中,丢失列表数据

如何将一个列表元素分别添加到 2 个列表中?

遍历两个列表并添加到结果列表将返回一个空列表。为什么?

比较3个列表之间的值,并将第一个列表中的缺失值添加到其余2个列表中-C#

Java8流-比较两个列表的对象值并将值添加到第一个列表的子对象?

迭代一个列表并将数据添加到 Python 中另一个嵌套的字典列表中