使用OpenCV和Python获取运动的一般方向

时间:2010-12-07 17:43:57

标签: python opencv

使用我在How do I track motion using OpenCV in Python?http://appdelegateinc.com/blog/2010/08/02/motion-tracking-with-a-webcam/找到的代码;我可以使用Python和OpenCV很好地跟踪运动。我稍微修改了它,所以不是在图像上绘制圆圈,而是打印出它检测到的(x,y)组合。现在,这对于显示运动的“精确”位置非常有用,但我想找出总体方向,例如,它是上升还是下降。

我有一个想法,即一旦我有几个点,使用gnuplot绘制所有y-coords VS数,然后计算最佳拟合线。如果渐变为正,则运动向上,如果为负,则运动向下。

虽然我相当肯定这会起作用,但似乎相当“hacky”。我想知道是否有更好的办法,因为我对OepnCV很新。

1 个答案:

答案 0 :(得分:0)

不,我不认为OpenCV提供此功能。您已经通过计算渐变来做到了这一点。但是,你可以用(x1,y1)和(x2,y2)的简单计算来判断两点之间的梯度。使用gnuplot可能很重。您也可以使用Numdifftools

在OpenCV上添加我在之前的答案中找不到的其他链接。

相关问题