如何找到两个对象之间的水平和垂直距离变化

How to find horizontal and vertical distance variation between 2 objects

我试图通过找到质心之间的距离来找到 EMGU CV 中两个对象之间的水平和垂直变化。底部对象始终固定,顶部对象在生产过程中移动。我正在使用这个公式 - ((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));

然而,这给出了任何方向的单一变化值。我试图找到顶部对象水平(left/right)和垂直(top/down)相对于固定底部对象的运动变化。我该怎么做呢?请帮忙。

您正试图通过找到质心之间的距离来找出两个对象之间的水平和垂直变化。

Horizontal / x-direction:
d_x = |x_1 - x_2|

Vertical / y-direction:
d_y = |y_1 - y_2|

您正在使用这个公式:

((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));

顺便说一句,这叫做 euclidean distance

对于运动变化,您可能需要对计算距离差的两个连续时间步执行此操作:

v_x(t=1) = d_x(t=1) - d_x(t=0)

我通过这样做找到了解决这个问题的方法: 使用固定对象的质心作为圆心,我计算了顶部对象的移动,如下所示: Math.Atan2(nydiff, nxdiff) * 180.0 / Math.PI