我看到有人制作了一款应用程序,可以通过使用相机跟踪您的双脚,以便您可以在iPhone屏幕上踢一个虚拟足球。
要如何实现这样的功能? 有人知道使用iPhone摄像头检测物体并跟踪它们的任何代码示例或其他信息吗?
我看到有人制作了一款应用程序,可以通过使用相机跟踪您的双脚,以便您可以在iPhone屏幕上踢一个虚拟足球。
要如何实现这样的功能? 有人知道使用iPhone摄像头检测物体并跟踪它们的任何代码示例或其他信息吗?
我刚在SecondConf上做了一个演讲,演示了使用iPhone相机和OpenGL ES 2.0着色器跟踪彩色物体的方法。包括我的幻灯片和所有演示Demo的代码样本的帖子可以在这里找到。
我编写的示例应用程序是基于Apple在WWDC 2007上为演示Core Image而制作的示例的,其代码可以从这里下载。该示例在《GPU Gems 3》书的第27章中有描述(链接需要梯子)。
基本思想是,您可以使用自定义GLSL着色器实时处理来自iPhone相机的图像,确定哪些像素在给定阈值内与目标颜色匹配。然后,这些像素的规范化X、Y坐标被嵌入到它们的红色和绿色分量中,而所有其他像素则被标记为黑色。然后对整个帧的颜色进行平均以得到彩色物体的重心,您可以在相机视图中跟踪其移动。
虽然这并没有解决跟踪像脚这样更复杂的对象的情况,但应该可以编写类似的着色器来选择这样一个移动的对象。
作为以上内容的更新,在我编写本文两年后,我现在已经开发了一个开源框架,它封装了OpenGL ES 2.0对图像和视频的着色器处理。其中最近增加的功能之一是GPUImageMotionDetector类,它处理场景并检测其中的任何运动。它将通过简单的回调块返回检测到的整体运动的质心和强度。使用此框架执行此操作应该比自己编写解决方案容易得多。