-2

我想知道是否可以通过相机检测到运动。该应用程序将在 2 部手机上运行,​​其中 1 部在 x 点上运行,另一个在 x+ 米上运行,它将用作准确的停止器。

所以我想检测的那种运动是物体高速通过相机(最大 40 KMH)。

所以再一次,这可能吗?

4

1 回答 1

0

它可以通过比较两个图像来完成。您基本上必须重写 onPreviewFrame(byte[] data, Camera cam) 方法并将默认的 YUV 转换为 RGB:

int[] rgb = ImageProcessing.decodeYUV420SPtoRGB(data, width, height);

创建一个用于运动检测代码的对象:

IMotionDetection detector = new RgbMotionDetection();

调用detect()方法传入上面得到的参数。

boolean detected = detector.detect(rgb, width, height)

如果布尔“检测到”变量为真,则它已检测到运动。

RGB 检测代码位于 RgbMotionDetection.java 类中。图像处理代码位于 ImageProcessing.java 静态类中。将它们捆绑在一起的 Activity 在 MotionDetectionActivity.java 中。

于 2013-06-08T22:31:07.227 回答