3

我最近看到了这个视频,并想实现类似的东西。基本方法很明确:我必须对图像进行阈值处理并检查虚拟对象是否与剩余的前景发生碰撞。

我不想自己实现物理,而是使用像 Box2D 这样的引擎。但是如何将阈值图像集成到物理引擎中,以便与虚拟对象进行交互?

4

1 回答 1

4

你想做边缘检测。有用于此的开源算法。虽然您可以按照您的建议设置阈值,但好的边缘检测算法可以在没有这个的情况下工作,并且可能会更有趣,因为您不需要纯白色背景来获得有趣的结果。对于初学者,请查看 OpenCV http://www.mathworks.com/products/imaq/demos.html?file=/products/demos/shipping/imaq/demoimaqsl_edgedetection.html 。

边缘检测器最终产生像素坐标中的向量作为输出。您需要将这些转换为 Box2Db2_staticBody对象,这些对象根据与生成边缘的视频帧相同的时间序列在程序控制下移动。现在您可以将动力学对象添加到 Box2D 环境中,它们的行为就像边缘是不可移动的实体一样。

最后,您必须将 Box2D 输出叠加到视频帧上。OpenCV 也应该对此有所帮助。或者您可以使用视频编辑工具。

这将是相当多的工作,但你甚至可以让它实时工作。请注意,如果您可以访问 MATLAB,它在其中一个工具箱中有一个视频帧速率边缘检测器。

于 2012-06-26T03:08:13.963 回答