如何计算帧中元组中像素之间的距离差?

时间:2019-08-19 13:37:30

标签: python opencv for-loop tuples distance

美好的一天,

在每个迭代步骤中,我都有一个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的内部),它可能会提供错误的结果,如下图所示?

编辑:在我看来,内循环无法作为提供的样本图像处理多个对象的检测。

也感谢您的时间。

enter image description here

</title>

1 个答案:

答案 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)以捕捉明显的运动,而不仅仅是颤抖或微不足道的运动。

希望有帮助。