【发布时间】:2011-04-25 10:12:39
【问题描述】:
我看到有人制作了一个使用摄像头跟踪你的脚的应用,这样你就可以在 iPhone 屏幕上踢虚拟足球。
你怎么能做这样的事情?有谁知道有关使用 iPhone 摄像头检测和跟踪对象的任何代码示例或其他信息?
【问题讨论】:
标签: iphone augmented-reality motion motion-detection
我看到有人制作了一个使用摄像头跟踪你的脚的应用,这样你就可以在 iPhone 屏幕上踢虚拟足球。
你怎么能做这样的事情?有谁知道有关使用 iPhone 摄像头检测和跟踪对象的任何代码示例或其他信息?
【问题讨论】:
标签: iphone augmented-reality motion motion-detection
我刚刚在 SecondConf 上做了一次演讲,在那里我演示了如何使用 iPhone 的摄像头使用 OpenGL ES 2.0 着色器来跟踪彩色对象。该演讲附带的帖子,包括我的幻灯片和所有演示的示例代码,都可以在 here 找到。
我编写的示例应用程序(其代码可从here 下载)基于 Apple 为在 WWDC 2007 上演示 Core Image 而制作的示例。该示例在Chapter 27 of the GPU Gems 3 book 中进行了描述。
基本思想是您可以使用自定义 GLSL 着色器实时处理来自 iPhone 摄像头的图像,确定哪些像素与给定阈值内的目标颜色匹配。然后,这些像素将它们的归一化 X、Y 坐标嵌入到它们的红色和绿色分量中,而所有其他像素都被标记为黑色。然后对整个帧的颜色进行平均以获得彩色对象的质心,当它在相机视图中移动时,您可以对其进行跟踪。
虽然这不能解决跟踪更复杂对象(如脚)的情况,但应该能够编写像这样的着色器来挑选出这样一个移动的对象。
作为对上述内容的更新,在我写这篇文章的两年里,我现在开发了an open source framework,它封装了图像和视频的 OpenGL ES 2.0 着色器处理。最近添加的一个是 GPUImageMotionDetector 类,它处理场景并检测其中的任何类型的运动。作为简单回调块的一部分,它将返回它检测到的整体运动的质心和强度。使用此框架执行此操作应该比滚动您自己的解决方案要容易得多。
【讨论】:
我在 iPhone 上使用 OpenCV 成功跟踪了面部和眼睛。 这是一个很好的起点:http://niw.at/articles/2009/03/14/using-opencv-on-iphone/en
我想诀窍是找到一个描述脚的级联(相机应该寻找什么的描述),但不确定它是否存在。
【讨论】: