我正在使用视频处理工具,需要将每帧的处理数据输入到数组中。
for p in det.read(frame, fac):
point_values = np.array([])
for j, (x, y) in enumerate(p): #iteration through points
point_values = np.append(point_values,y)
point_values = np.append(point_values,x)
此代码每帧再次运行。我期待“point_values = np.array([])”来重置数组,然后再次开始填充它。
我不确定我的逻辑是错误还是语法问题。
答案 0 :(得分:0)
您的代码确实:
In [77]: p = [(0,0),(0,2),(1,0),(1,2)]
In [78]: arr = np.array([])
In [79]: for j,(x,y) in enumerate(p):
...: arr = np.append(arr,y)
...: arr = np.append(arr,x)
...:
In [80]: arr
Out[80]: array([0., 0., 2., 0., 0., 1., 2., 1.])
没有语法错误。等效列表更快更清洁:
In [85]: alist =[]
In [86]: for x,y in p: alist.extend((y,x))
In [87]: alist
Out[87]: [0, 0, 2, 0, 0, 1, 2, 1]
但是你没有说明这个动作应该如何适应更大的背景。您为每个point_values
创建了一个新的p
,但之后却不做任何事情。