16

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

你怎么能做这样的事?有谁知道有关使用 iPhone 摄像头检测和跟踪对象的任何代码示例或其他信息?

4

2 回答 2

33

我刚刚在 SecondConf 上做了一次演讲,我演示了如何使用 iPhone 的摄像头使用 OpenGL ES 2.0 着色器来跟踪彩色对象。可以在此处找到伴随该演讲的帖子,包括我的幻灯片和所有演示的示例代码。

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

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

虽然这并没有解决跟踪更复杂对象(如脚)的情况,但应该能够编写像这样的着色器来挑选出这样一个移动的对象。

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

于 2010-10-24T04:29:09.253 回答
3

我在 iPhone 上使用 OpenCV 成功跟踪了面部和眼睛。这是一个很好的起点: http: //niw.at/articles/2009/03/14/using-opencv-on-iphone/en

我想诀窍是找到一个描述脚的级联(相机应该寻找什么的描述),但不确定它是否存在。

于 2010-10-14T23:13:19.937 回答