从OpenCV返回的某个numpy数组中获取元素?

时间:2015-05-31 01:10:54

标签: python arrays opencv numpy element

我正在尝试获取numpy数组中的信息(坐标),并且我很难从中提取信息。

numpy数组由openCV方法cv2.calcOpticalFlowPyrLK返回,该方法生成numpy数组中每个点的坐标。

这是单点的输出:

[[[ 292.61154175  264.74569702]]]

代码的小样本:

p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params)

good_new = p1[st==1]
good_old = p0[st==1]

如何从那种类型的numpy数组中单独提取这些数字?

1 个答案:

答案 0 :(得分:2)

import numpy

# create such a nested array
d = numpy.array([[[1, 2]]])

# test that we can access individual elements
assert d[0, 0, 0] == 1
assert d[0, 0, 1] == 2

更新:

请注意,上面的索引仅适用于numpy数组。标准Python嵌套列表(如e = [[[1, 2]]])必须以标准Python方式编制索引:e[0][0][0]