【问题标题】:Getting element from a certain numpy array returned from OpenCV?从 OpenCV 返回的某个 numpy 数组中获取元素?
【发布时间】:2015-05-31 01:10:54
【问题描述】:

我正在尝试获取 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 数组中单独提取这些数字?

【问题讨论】:

  • 到底是什么问题?从嵌套列表/数组中获取单个值,例如[[[ 292.61154175 264.74569702]]]?
  • 是的,我正在尝试从可以单独获取 292.61154175 和 264.7459702 的数组中获取各个数字。

标签: python arrays opencv numpy element


【解决方案1】:
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]

【讨论】:

  • 请以d[0, 0, 0]而不是d[0][0][0]访问numpy数组。
猜你喜欢
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2012-08-03
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多