如何使用iPhone的相机跟踪运动?

Bur*_*000 16 iphone motion-detection motion augmented-reality

我看到有人制作了一个使用相机跟踪你的脚的应用程序,这样你就可以在iPhone屏幕上踢一个虚拟足球.

你怎么能这样做?有没有人知道有关使用iPhone相机检测对象和跟踪它们的任何代码示例或其他信息?

Bra*_*son 32

我刚刚在SecondConf上做了一个演讲,在那里我演示了如何使用iPhone的相机使用OpenGL ES 2.0着色器跟踪彩色对象.随附的帖子,包括我的幻灯片和所有演示的示例代码都可以在这里找到.

我编写的示例应用程序(其代码可以从此处下载)基于Apple为在WWDC 2007上演示Core Image而生成的示例.该示例在GPU Gems 3书的第27章中进行了描述.

基本思想是您可以使用自定义GLSL着色器实时处理来自iPhone相机的图像,确定哪些像素与给定阈值内的目标颜色匹配.然后,这些像素将其标准化的X,Y坐标嵌入其红色和绿色分量中,而所有其他像素标记为黑色.然后对整个帧的颜色进行平均以获得彩色对象的质心,您可以在相机视图中移动时跟踪该质心.

虽然这并没有解决跟踪像脚这样更复杂的对象的情况,但是应该能够编写这样的着色器,以便能够选择这样一个移动的对象.

作为对上述内容的更新,在我写这篇文章后的两年里,我现在开发了一个开源框架,它封装了OpenGL ES 2.0着色器处理图像和视频.最近添加的一个是GPUImageMotionDetector类,它处理场景并检测其中的任何类型的运动.它将返回它作为简单回调块的一部分检测到的整体运动的质心和强度.使用此框架执行此操作应该比滚动自己的解决方案容易得多.