iOS中的相机运动感应

5
我正在开发一款iOS应用程序,如果相机检测到图像中的某些变化或者可以说是图像中的运动,就会触发一个事件。这里我不是在询问面部识别或特定颜色图像的运动,当我搜索OpenCV时,我得到了所有的结果。我还发现我们可以通过使用陀螺仪和加速度计来实现这一点,但是如何做到呢?
作为iOS的初学者,我的问题是,是否有任何框架或任何简单的方法来检测相机的运动或运动感应?如何实现?
例如,如果我在相机前移动手,它将显示一条消息或警报。
请给我一些有用且易于理解的链接。谢谢。

这不是官方答案,但有很多传言称iOS 7将包括某种运动检测功能。 - Michael Dautermann
那么,没有办法实现这个MichaelDautermann吗? - Shyam Dixit
我没有说过@Shyam,我说的是动态检测可能只需要几周时间就能变得更加容易。您还可以搜索一下是否已经存在某些SDK或开源解决方案。 - Michael Dautermann
2个回答

11

如果你只需要一种简单的运动检测,我的开源GPUImage框架中有一个GPUImageMotionDetector。这个简单的运动检测器基于低通滤波进行帧与帧之间的比较,并且可以确定在帧之间发生变化的像素数量和变化区域的质心。它可以在实时视频上操作,我知道有些人将其用于iOS应用程序中的运动激活功能。

由于它依赖于像素差异而不是光流或特征匹配,因此可能会出现误报和无法跟踪移动帧中的离散对象。但是,如果你只需要基本的运动感应,那么将其集成到你的应用程序中就非常容易。查看FilterShowcase示例,了解它的实际工作方式。


当我尝试运行FilterShowCase示例时,GPUImageBilateralFilter.m文件中显示错误:-使用未声明的标识符'_distanceNormalizationFactor'。在这里,我正在使用Xcode 4.3.3,并且我尝试在Xcode 4.1中运行它,然后会显示错误,例如:-未知类型名称'__unsafe_unretained'。@Brad Larson - Shyam Dixit
弱链接 Core Video 框架的含义是什么?这是你在框架的介绍部分中写的。@Brad Larson - Shyam Dixit
@ShyamDixit - Xcode 4.1现在已经相当古老了,不要用它来做任何事情。您需要具备ARC支持才能使用此框架,并且我建议使用Xcode 4.4或更高版本。此外,请使用存储库中的最新代码,因为distanceNormalizationFactor属性在旧版Xcode中被正确定义,但几个月前已经修复了该问题。在最新的Xcode中,要弱链接某些内容,请将框架的状态从“必需”的更改为“可选”的链接二进制文件与库构建阶段。 - Brad Larson
如何实现像《舞力全开》应用程序一样的动作传感器...就像图像出现并要求用户模仿一样... - Akash Raghani

1

我并不完全理解你在这里的意思:

这里我不是在询问面部识别或特定颜色图像运动,因为当我搜索OpenCV时,我得到了所有结果

但我建议您选择opencv,因为您可以在IOS中使用opencv。 这是一个很好的链接,可以帮助您设置ios中的opencv

有很多在线的opencv运动检测代码,其中一个,您可以利用。

你需要将IOS中的UIImage (图像类型)转换为cv :: MatIplImage,并将其传递给OpenCV算法。您可以使用此链接此链接进行转换。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接