【发布时间】:2015-12-03 02:15:13
【问题描述】:
所以我正在使用 matlab 并且我设法修改了他们的一个示例,以便我现在可以绘制人们走在下面时的流线(相机在门上方)。 我使用 Lucas-Kanade 光流和计算机视觉工具箱。
线是这样定义的,我还定义了跟踪点。这些跟踪点包括原始点没有改变的情况,因此在这种情况下 real(tmp(:)) 将为零,并且这些点将与最初识别的特征点相同。
vel_Lines = [Y(:) X(:) Y(:)+real(tmp(:)) X(:)+imag(tmp(:))];
allTrackedPoints = [Y(:)+real(tmp(:)) X(:)+imag(tmp(:))];
我的问题是我如何才能获得成功跟踪一定距离的点?我想以某种方式只保留变化足够大的值。
我对 Matlab 的语法不是很好,所以希望这对某人来说很容易。
我想获取成功跟踪的与运动相关的点,然后对这些点进行聚类以确定有多少人,然后使用多对象跟踪器跟踪这些点集。
【问题讨论】:
-
更多代码来说明你的观点会很好。它可以帮助我通过修改代码来创建解决方案,而不必从头开始编写东西。然而,最简单的方法是保存前一帧的光流向量并进行差异计算,看看距离是否超过了一定的量。聚类应该很容易。您将所有点放在一个列表中,遍历每个点并收集距离该点一定距离的那些点,然后将它们从列表中删除。当您附近有人时,这将是一个问题。
-
谢谢!当然,希望在它们彼此靠近之前将它们识别为门下的步行道。
-
谢谢!那我可以通过电子邮件将代码发送给您吗?我这里装不下。即使有多个对象,跟踪也不会成为问题,它只是首先识别人(我发现背景减法和斑点效果不佳,因此采用了这种方法)。我还可以通过 Google Drive 分享视频和内容?
标签: matlab image-processing computer-vision matlab-cvst opticalflow