一种快速按时序播放多个目标轨迹点的回放方法技术领域
本发明属于计算机视觉技术,具体涉及目标轨迹的回放技术。
背景技术
轨迹是很重要的历史数据。通过对轨迹的查询,可以知道在某段时间里目
标去了哪里,然而对轨迹的查询是很耗时间的。
对于人机界面来说,用户的长时间等待是不允许的。轨迹的原始文件是多
目标轨迹点无序的,对于这些大量无序的轨迹点,一般地方法去筛选排序按时
间分隔是需要占用很长的时间,显示效果不佳,有时多目标不能同步,或有较
长的时间延时,超出了用户等待可以忍受的范围。
发明内容
针对现有轨迹回放及查询技术耗时长、且无法实现多目标同步的问题,本
发明的目的在于提供一种快速按时序播放多个目标轨迹点的回放方法。
为了达到上述目的,本发明采用如下的技术方案:
一种快速按时序播放多个目标轨迹点的回放方法,所述方法将多个目标轨
迹点组成的大量数据,按照播放时长,计算所需分隔的数量,再遍历以轨迹点
填充分隔区,形成按时序排列的分隔数据区;最后启动计时器,播放轨迹。
在本发明的优选实例中,所述回放方法包括如下步骤:
(101)设置时间和FTP路径;
(102)与目标FTP连接;
(103)通过FTP下载所需的轨迹点二进制文件;
(104)转化二进制轨迹点文件;
(105)筛选轨迹点,去除连续相同位置轨迹点;
(106)获取所有轨迹点的最小时间和最大时间,以及轨迹点需要分成多
少间隔N;
(107)计算最大时间和最小时间的时间间隔,以及每个轨迹间隔的时长;
(108)循环每个间隔,判断是否是最后一个轨迹间隔,如果不是转(109),
如果是转(121);
(109)计算当前轨迹间隔的最大时间;
(110)循环目标轨迹Map容器,是否到最后一个目标号轨迹,如果是转
(111),否则转(112);
(111)将间隔临时VECTOR容器放入间隔vector容器,转(108);
(112)判断该目标号之前是否处理标记过,如果不是转(113),否则转
(119);
(113)将该目标号轨迹LIST容器起始指针指向开始处;
(114)判断List容器起始指针指向的轨迹点时间是否大于当前轨迹间隔
的最大时间,如果是转(110),如果不是转(115);
(115)循环该目标号轨迹点LIST容器,是否到该目标号轨迹点LIST容器
底部,如果是转(121),否则转(116);
(116)判断当前轨迹点的时间是否大于该轨迹间隔的最大时间,如果是转
(117),否则转(118-1);
(117)将该目标号标记,并将该轨迹点标记;
(118)将临时LIST容器放入到间隔临时VECTOR容器中,清空临时LIST
容器,转(110);
(118-1)将该轨迹点放入临时List容器,(转116);
(119)将该目标号轨迹list容器起始指针指向上次处理停留处;
(120)删除该目标号处理标记,转(115);
(121)开起计时器,准备回放;
(122)循环所有间隔是否结束,如果结束转(129),否则转(123);
(123)循环当前间隔轨迹容器里每个目标是否结束,如果结束,本次计时
器处理结束,否则转(124);
(124)循环该目标每个轨迹点是否结束,如果结束转(123),否则转(125);
(125)判断是否为第一个轨迹点,如果是转(128),否则转(126);
(126)判断当前点距离上一个是否超过限制距离,如果超过;否则转(127);
(127)连接当前点和上个点;
(128)画当前点,转(124);
(129)结束。
本方法将多个目标轨迹点组成的大量数据进行优化分隔排序处理,可以减
少对整个轨迹点数据的多次反复的遍历,减少重复排序工作,缩短轨迹回放的
处理时间,提高画面响应速度,做到多目标同步显示。
附图说明
以下结合附图和具体实施方式来进一步说明本发明。
图1为本发明实例进行快速按时序播放多个目标轨迹点的c流程图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,
下面结合具体图示,进一步阐述本发明。
本发明通过将多个目标轨迹点组成的大量数据进行优化分隔排序处理,以
此来减少对整个轨迹点数据的多次反复的遍历,从而减少重复排序工作,缩短
轨迹回放的处理时间,提高画面响应速度,做到多目标同步显示。
具体的,本方案首先连接FTP,下载所需的轨迹二进制文件,然后转化二
进制文件,筛选轨迹点;针对筛选后的数据按照播放时长,计算所需分隔的数
量;遍历所以轨迹点填充分隔区,形成按时序排列的分隔数据区;启动计时器,
播放轨迹。
假如有4个轨迹点分别为:1分1秒、1分3秒、1分6秒、1分10秒,
要求10秒播放完(播放时长),4个轨迹点的做大时间间隔为10秒,最大时
间间隔/分隔的数量(设为10),即每个间隔需要处理的时间,第一个分隔为轨
迹点1分1秒,第二个分隔没有轨迹点,第三个分隔为轨迹点1分3秒,第四
个分隔没有轨迹点…第10个间隔为轨迹点1分10秒。
其中将符合分隔所需时间的轨迹点填入分区数据区,由此形成按时间排序
的排列的分隔数据区。
以通过一具体实例来进一步说明本方案:
本实例基于一个多个目标轨迹点放回系统来实现,该系统主要包括一处理
器、寄存器、数据存储器以及其他所需的部件(如控制键、显示器等等),其
中寄存器中设置有相应的多个目标轨迹点回放控制程序,该控制程序基于本发
明方案形成;数据存储器用于存储待回放的由多个目标轨迹点组成的大量数据
以及整个系统运行所产生的数据;处理器调用寄存器中相应的回放控制程序对
数据存储器中存储的由多个目标轨迹点组成的大量数据进行多个目标轨迹点
的快速按时序播放。其具体的控制过程如下(参见图1):
(101)设置时间和FTP路径;
(102)与目标FTP连接;
(103)通过FTP下载所需的轨迹点二进制文件;
(104)转化二进制轨迹点文件;
(105)筛选轨迹点,去除连续相同位置轨迹点;
(106)获取所有轨迹点的最小时间和最大时间,以及轨迹点需要分成多
少间隔N;
(107)计算最大时间和最小时间的时间间隔,以及每个轨迹间隔的时长;
(108)循环每个间隔,判断是否是最后一个轨迹间隔,如果不是转(109),
如果是转(121);
(109)计算当前轨迹间隔的最大时间;
(110)循环目标轨迹Map容器,是否到最后一个目标号轨迹,如果是转
(111),否则转(112);
(111)将间隔临时VECTOR容器放入间隔vector容器,转(108);
(112)判断该目标号之前是否处理标记过,如果不是转(113),否则转
(119);
(113)将该目标号轨迹LIST容器起始指针指向开始处;
(114)判断List容器起始指针指向的轨迹点时间是否大于当前轨迹间隔
的最大时间,如果是转(110),如果不是转(115);
(115)循环该目标号轨迹点LIST容器,是否到该目标号轨迹点LIST容器
底部,如果是转(121),否则转(116);
(116)判断当前轨迹点的时间是否大于该轨迹间隔的最大时间,如果是转
(117),否则转(118-1);
(117)将该目标号标记,并将该轨迹点标记;
(118)将临时LIST容器放入到间隔临时VECTOR容器中,清空临时LIST
容器,转(110);
(118-1)将该轨迹点放入临时List容器,(转116);
(119)将该目标号轨迹list容器起始指针指向上次处理停留处;
(120)删除该目标号处理标记,转(115);
(121)开起计时器,准备回放;
(122)循环所有间隔是否结束,如果结束转(129),否则转(123);
(123)循环当前间隔轨迹容器里每个目标是否结束,如果结束,本次计时
器处理结束,否则转(124);
(124)循环该目标每个轨迹点是否结束,如果结束转(123),否则转(125);
(125)判断是否为第一个轨迹点,如果是转(128),否则转(126);
(126)判断当前点距离上一个是否超过限制距离,如果超过(这里的限制
距离是个常量,预先设定好,首先计算当前点和上个点两点之间的距离,然后
和限制距离比较大小,由此来确定是否超过);否则转(127);
(127)连接当前点和上个点;
(128)画当前点,转(124);
(129)结束。
通过实验证明,本实例方案与其它方法相比快了数倍,取得了很好的视觉
效果和体验。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业
的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中
描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明
还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本
发明要求保护范围由所附的权利要求书及其等效物界定。