我需要对Kinect相机拍摄的图像进行评估,以便检测两个移动物体是否会发生碰撞。移动物体的形状,大小和颜色是事先已知的。
我的任务是:
两个对象的当前位置
两个物体中每一个的当前速度
我在Opencv和Java上做这个项目,我能够从笔记本电脑网络摄像头和Kinect跟踪两个彩色对象。
如何找到两个物体的当前位置和速度?
答案 0 :(得分:0)
从数学上看,你需要有两张照片,然后你可以按时间划分距离。
double distance = Math.sqrt(Math.pow((objectbefore.x-objectafter.x),2)+ Math.pow((objectbefore.y-objectafter.y),2))
Timer对象以java中的整数计数,所以:
int time = Timer.getTime()(之后) - Timer.getTime()(之前)(这在java中是不正确的,但你会得到我的意图)
答案 1 :(得分:0)
这取决于您是否可以按像素移动对象像素。让我向你解释一下。如果成为一个对象,例如:
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(块的位置),你也可以用某种方法来询问时间。所以你可以实际测量速度。