【问题标题】:How to find horizontal and vertical distance variation between 2 objects如何找到2个对象之间的水平和垂直距离变化
【发布时间】:2019-02-26 11:25:54
【问题描述】:

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

但是,这会给出任何方向的单一变化值。我试图参考固定的底部对象找到顶部对象水平(左/右)和垂直(上/下)的移动变化。我该怎么做呢?请帮忙。

【问题讨论】:

  • 更正了。
  • 您使用的公式给出了对象之间的距离。据我了解,您需要 diffX = x2 - x1 和 diffY = y2 - y1

标签: c# math image-processing computer-vision emgucv


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    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)
    

    【讨论】:

    • 嗨,你的方程式是什么?
    • t 表示你的测量时间(timestep)
    • 嗨,我使用了不同的方法。使用固定对象的质心作为圆心,我计算了顶部对象的移动,如下所示:Math.Atan2(nydiff, nxdiff) * 180.0 / Math.PI
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    相关资源
    最近更新 更多