【问题标题】:Object tracking, avoid collision and current velocity of two objects对象跟踪,避免两个对象的碰撞和当前速度
【发布时间】:2014-04-11 17:54:57
【问题描述】:

我需要评估 Kinect 相机拍摄的图像,以检测两个移动物体是否会发生碰撞。运动物体的形状、大小和颜色都是预先知道的。

我的任务是:

  • 两个物体的当前位置

  • 两个物体各自的当前速度

我在 Opencv 和 Java 上做这个项目,我能够从笔记本电脑网络摄像头和 Kinect 跟踪两个彩色对象。

如何找到两个物体的当前位置和速度?

【问题讨论】:

  • 速度是每次距离之类的东西......你不能从一张照片中做到这一点

标签: java opencv collision-detection


【解决方案1】:

数学上看你需要有两张图片,然后你可以将距离除以时间。

双倍距离 = Math.sqrt(Math.pow((objectbefore.x-objectafter.x), 2) + Math.pow((objectbefore.y-objectafter.y), 2))

Timer 对象在 Java 中以整数计数,所以:

int time = Timer.getTime()(after) - Timer.getTime()(before) (这在 java 中不正确,但你会明白我的意图)

【讨论】:

  • 非常感谢您的建议,现在我正在尝试在每个像素中找到移动对象的当前位置。有没有可能?
【解决方案2】:

这取决于您是否可以按像素移动对象像素。让我向你解释一下。如果做了一个对象,例如:

Rectangle block = new Rectangle(block.x, block.y, block.width, block.height);

你还需要一个 Timer 对象让它移动:

java.util.Timer time;
time.schedule(task, delay, period);

那么你应该在对象时间和对象块之间建立依赖关系。完成后,您可以使块移动。您可以随时询问 block.x 或 block.y(块的位置),也可以通过某种方法询问时间。所以你实际上可以测量速度。

【讨论】:

  • 非常感谢您的帮助,稍后我会更新我的项目状态。
猜你喜欢
  • 2013-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-21
相关资源
最近更新 更多