如何将2d位图转换为具有x-y坐标的点



我正在使用opencv/python进行运动检测项目。我已经达到了创建图像位图/数组的地步,其中已检测到的运动由数组中的1表示,0表示没有运动(通过在短延迟后从另一个视频提要中减去一张图片)。我希望通过使用Numpy的(或opencv的)kmeans算法来确定我的移动目标(可能有超过1个)。然而,这些算法需要使用x,y坐标数组的输入。将2d图像位图数组转换为xy坐标数组的最快和最有效的方法是什么?(例如,我们在这里讨论的是图像处理,所以不希望使用缓慢的Python代码)。

Numpy的nonzero将这样做:

下面是一个来自文档的例子:

>>> x = np.eye(3)
>>> x
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])
>>> np.nonzero(x)
(array([0, 1, 2]), array([0, 1, 2]))

即输出数组中非零元素的下标。

相关内容

  • 没有找到相关文章

最新更新