我想知道是否可以通过相机检测到移动。该应用程序将在2个手机1上运行x点,另一个运行在x +米上,它将用作准确的塞子。
所以我想要检测的运动类型是高速通过相机的物体(最大40 KMH)。
再一次,是否可能?
答案 0 :(得分:0)
可以通过比较两个图像来完成。你基本上必须覆盖onPreviewFrame(byte []数据,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中。