如何用GPUImage motionDetection获取运动物体的坐标- swift
How to get the coordinates of the moving object with GPUImage motionDetection- swift
我将如何获取使用 motionDetection 过滤器进入帧的物体的屏幕坐标?我对编程还很陌生,如果可能的话,我更喜欢 swift 答案。
示例 - 我让 iphone 指向墙壁 - 使用 motionDetector 对其进行监控。如果我将网球弹到墙上 - 我希望该应用程序将网球图像放置在 iphone 显示屏上它撞到墙上的同一位置。
为此,我需要运动发生位置的坐标。
我想也许 "centroid" 论点做到了这一点……但我不确定。
我应该指出运动检测器非常粗糙。它的工作原理是采用视频流的 low-pass 过滤版本(由传入视频帧的加权平均值生成的合成图像),然后从当前视频帧中减去它。差异超过特定阈值的像素被标记。结果提供了这些像素的数量以及标记像素的质心。
质心是标准化 (0.0-1.0) 坐标,表示所有这些不同像素的质心。归一化强度为您提供标记为不同的像素的百分比。
场景中的移动通常会导致一堆像素不同,对于单个移动对象,质心通常是该对象的中心。然而,这不是一个可靠的衡量标准,因为光照变化、阴影、其他移动物体等也会导致像素不同。
对于真正的对象跟踪,您需要使用特征检测和跟踪算法。不幸的是,发布的框架目前没有任何这些的完全实现版本。
我将如何获取使用 motionDetection 过滤器进入帧的物体的屏幕坐标?我对编程还很陌生,如果可能的话,我更喜欢 swift 答案。
示例 - 我让 iphone 指向墙壁 - 使用 motionDetector 对其进行监控。如果我将网球弹到墙上 - 我希望该应用程序将网球图像放置在 iphone 显示屏上它撞到墙上的同一位置。
为此,我需要运动发生位置的坐标。 我想也许 "centroid" 论点做到了这一点……但我不确定。
我应该指出运动检测器非常粗糙。它的工作原理是采用视频流的 low-pass 过滤版本(由传入视频帧的加权平均值生成的合成图像),然后从当前视频帧中减去它。差异超过特定阈值的像素被标记。结果提供了这些像素的数量以及标记像素的质心。
质心是标准化 (0.0-1.0) 坐标,表示所有这些不同像素的质心。归一化强度为您提供标记为不同的像素的百分比。
场景中的移动通常会导致一堆像素不同,对于单个移动对象,质心通常是该对象的中心。然而,这不是一个可靠的衡量标准,因为光照变化、阴影、其他移动物体等也会导致像素不同。
对于真正的对象跟踪,您需要使用特征检测和跟踪算法。不幸的是,发布的框架目前没有任何这些的完全实现版本。