使用我在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)co字。现在,这对于显示运动的“精确”位置非常有用,但是我想找出运动的大致方向,例如,它是上升还是下降。在
我有一个想法,就是一旦我有了几个点,用gnuplot绘制出所有y坐标VS数字,然后计算出一条最佳拟合线。如果梯度为正,则运动向上,如果为负,则运动向下。在
虽然我相当肯定这会起作用,但它似乎有点“老套”。我不知道有没有更好的方法来做这件事,因为我对OepnCV还很陌生。在
不,我不认为OpenCV提供这种功能。通过计算梯度,你已经做对了。但是,你可以用一个简单的计算(x1,y1)和(x2,y2)来判断两点之间的梯度。使用gnuplot可能很繁重。您也可以使用Numdifftools。在
在OpenCV上添加我在前面的答案中没有找到的附加链接。在
相关问题 更多 >
编程相关推荐