美好的一天,
在每个迭代步骤中,我都有一个p1来描述每个人的位置。 p1是一个元组,因此p1 =(x_point,y_point),p1描述了人在第i帧中的位置。
根据本文{95}到第109行之间的https://www.pyimagesearch.com/2015/09/21/opencv-track-object-movement/。我试图修改95到109行中的行,以测量人的运动距离差异。
该问题可以通过以下代码重现,假设每次迭代i时我都得到p1(最初p1是SORT Tracking提供的值)。由于我正在处理大约29 fps的视频以及多个对象。基于以下代码(循环j的内部),它可能会提供错误的结果,如下图所示?
编辑:在我看来,内循环无法作为提供的样本图像处理多个对象的检测。
也感谢您的时间。
</title>
答案 0 :(得分:0)
代码似乎可以正确计算,但是您可以进行一些优化。 如果i> = 10,则可以将条件放在j的循环之外,这是一些优化,但更优雅。
if i >= 10:
for j in range(1, len(points_list)):
//some code
else:
continue
此外,您没有在条件之前定义dirx和diry,因此如果您不沿一个轴移动,则程序可能会引发异常。在本文中,它们在第109行初始化。
最后,条件np.abs(direction_x)> 0似乎有点松动。通常,当您要定义运动时,可以设置最小值(在文章的第113行中为20)以捕捉明显的运动,而不仅仅是颤抖或微不足道的运动。
希望有帮助。