一種快速按時(shí)序播放多個(gè)目標(biāo)軌跡點(diǎn)的回放方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種快速按時(shí)序播放多個(gè)目標(biāo)軌跡點(diǎn)的回放方法,其將多個(gè)目標(biāo)軌跡點(diǎn)組成的大量數(shù)據(jù),按照播放時(shí)長(zhǎng),計(jì)算所需分隔的數(shù)量,再遍歷以軌跡點(diǎn)填充分隔區(qū),形成按時(shí)序排列的分隔數(shù)據(jù)區(qū);最后啟動(dòng)計(jì)時(shí)器,播放軌跡。本發(fā)明可以減少對(duì)整個(gè)軌跡點(diǎn)數(shù)據(jù)的多次反復(fù)的遍歷,減少重復(fù)排序工作,縮短軌跡回放的處理時(shí)間,提高畫(huà)面響應(yīng)速度,做到多目標(biāo)同步顯示。
【專(zhuān)利說(shuō)明】
一種快速按時(shí)序播放多個(gè)目標(biāo)軌跡點(diǎn)的回放方法
技術(shù)領(lǐng)域
[0001 ] 本發(fā)明屬于計(jì)算機(jī)視覺(jué)技術(shù),具體涉及目標(biāo)軌跡的回放技術(shù)。
【背景技術(shù)】
[0002]軌跡是很重要的歷史數(shù)據(jù)。通過(guò)對(duì)軌跡的查詢(xún),可以知道在某段時(shí)間里目標(biāo)去了哪里,然而對(duì)軌跡的查詢(xún)是很耗時(shí)間的。
[0003]對(duì)于人機(jī)界面來(lái)說(shuō),用戶(hù)的長(zhǎng)時(shí)間等待是不允許的。軌跡的原始文件是多目標(biāo)軌跡點(diǎn)無(wú)序的,對(duì)于這些大量無(wú)序的軌跡點(diǎn),一般地方法去篩選排序按時(shí)間分隔是需要占用很長(zhǎng)的時(shí)間,顯示效果不佳,有時(shí)多目標(biāo)不能同步,或有較長(zhǎng)的時(shí)間延時(shí),超出了用戶(hù)等待可以忍受的范圍。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有軌跡回放及查詢(xún)技術(shù)耗時(shí)長(zhǎng)、且無(wú)法實(shí)現(xiàn)多目標(biāo)同步的問(wèn)題,本發(fā)明的目的在于提供一種快速按時(shí)序播放多個(gè)目標(biāo)軌跡點(diǎn)的回放方法。
[0005]為了達(dá)到上述目的,本發(fā)明采用如下的技術(shù)方案:
[0006]—種快速按時(shí)序播放多個(gè)目標(biāo)軌跡點(diǎn)的回放方法,所述方法將多個(gè)目標(biāo)軌跡點(diǎn)組成的大量數(shù)據(jù),按照播放時(shí)長(zhǎng),計(jì)算所需分隔的數(shù)量,再遍歷以軌跡點(diǎn)填充分隔區(qū),形成按時(shí)序排列的分隔數(shù)據(jù)區(qū);最后啟動(dòng)計(jì)時(shí)器,播放軌跡。
[0007]在本發(fā)明的優(yōu)選實(shí)例中,所述回放方法包括如下步驟:
[0008](101)設(shè)置時(shí)間和FTP路徑;
[0009](102)與目標(biāo)FTP連接;
[0010](103)通過(guò)FTP下載所需的軌跡點(diǎn)二進(jìn)制文件;
[0011](104)轉(zhuǎn)化二進(jìn)制軌跡點(diǎn)文件;
[0012](105)篩選軌跡點(diǎn),去除連續(xù)相同位置軌跡點(diǎn);
[0013](106)獲取所有軌跡點(diǎn)的最小時(shí)間和最大時(shí)間,以及軌跡點(diǎn)需要分成多少間隔N ;
[0014](107)計(jì)算最大時(shí)間和最小時(shí)間的時(shí)間間隔,以及每個(gè)軌跡間隔的時(shí)長(zhǎng);
[0015](108)循環(huán)每個(gè)間隔,判斷是否是最后一個(gè)軌跡間隔,如果不是轉(zhuǎn)(109),如果是轉(zhuǎn)(121);
[0016](109)計(jì)算當(dāng)前軌跡間隔的最大時(shí)間;
[0017](110)循環(huán)目標(biāo)軌跡Map容器,是否到最后一個(gè)目標(biāo)號(hào)軌跡,如果是轉(zhuǎn)(111),否則轉(zhuǎn)(112);
[0018](111)將間隔臨時(shí)VECTOR容器放入間隔vector容器,轉(zhuǎn)(108);
[0019](112)判斷該目標(biāo)號(hào)之前是否處理標(biāo)記過(guò),如果不是轉(zhuǎn)(113),否則轉(zhuǎn)(119);
[0020](113)將該目標(biāo)號(hào)軌跡LIST容器起始指針指向開(kāi)始處;
[0021](114)判斷List容器起始指針指向的軌跡點(diǎn)時(shí)間是否大于當(dāng)前軌跡間隔的最大時(shí)間,如果是轉(zhuǎn)(110),如果不是轉(zhuǎn)(115);
[0022](115)循環(huán)該目標(biāo)號(hào)軌跡點(diǎn)LIST容器,是否到該目標(biāo)號(hào)軌跡點(diǎn)LIST容器底部,如果是轉(zhuǎn)(121),否則轉(zhuǎn)(116);
[0023](116)判斷當(dāng)前軌跡點(diǎn)的時(shí)間是否大于該軌跡間隔的最大時(shí)間,如果是轉(zhuǎn)(117),否則轉(zhuǎn)(118-1);
[0024](117)將該目標(biāo)號(hào)標(biāo)記,并將該軌跡點(diǎn)標(biāo)記;
[0025](118)將臨時(shí)LIST容器放入到間隔臨時(shí)VECTOR容器中,清空臨時(shí)LIST容器,轉(zhuǎn)(110);
[0026](118-1)將該軌跡點(diǎn)放入臨時(shí)List容器,(轉(zhuǎn)116);
[0027](119)將該目標(biāo)號(hào)軌跡list容器起始指針指向上次處理停留處;
[0028](120)刪除該目標(biāo)號(hào)處理標(biāo)記,轉(zhuǎn)(115);
[0029](121)開(kāi)起計(jì)時(shí)器,準(zhǔn)備回放;
[0030](122)循環(huán)所有間隔是否結(jié)束,如果結(jié)束轉(zhuǎn)(129),否則轉(zhuǎn)(123);
[0031](123)循環(huán)當(dāng)前間隔軌跡容器里每個(gè)目標(biāo)是否結(jié)束,如果結(jié)束,本次計(jì)時(shí)器處理結(jié)束,否則轉(zhuǎn)(124);
[0032](124)循環(huán)該目標(biāo)每個(gè)軌跡點(diǎn)是否結(jié)束,如果結(jié)束轉(zhuǎn)(123),否則轉(zhuǎn)(125);
[0033](125)判斷是否為第一個(gè)軌跡點(diǎn),如果是轉(zhuǎn)(128),否則轉(zhuǎn)(126);
[0034](126)判斷當(dāng)前點(diǎn)距離上一個(gè)是否超過(guò)限制距離,如果超過(guò);否則轉(zhuǎn)(127);
[0035](127)連接當(dāng)前點(diǎn)和上個(gè)點(diǎn);
[0036](128)畫(huà)當(dāng)前點(diǎn),轉(zhuǎn)(124);
[0037](129)結(jié)束。
[0038]本方法將多個(gè)目標(biāo)軌跡點(diǎn)組成的大量數(shù)據(jù)進(jìn)行優(yōu)化分隔排序處理,可以減少對(duì)整個(gè)軌跡點(diǎn)數(shù)據(jù)的多次反復(fù)的遍歷,減少重復(fù)排序工作,縮短軌跡回放的處理時(shí)間,提高畫(huà)面響應(yīng)速度,做到多目標(biāo)同步顯示。
【附圖說(shuō)明】
[0039]以下結(jié)合附圖和【具體實(shí)施方式】來(lái)進(jìn)一步說(shuō)明本發(fā)明。
[0040]圖1為本發(fā)明實(shí)例進(jìn)行快速按時(shí)序播放多個(gè)目標(biāo)軌跡點(diǎn)的c流程圖。
【具體實(shí)施方式】
[0041]為了使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合具體圖示,進(jìn)一步闡述本發(fā)明。
[0042]本發(fā)明通過(guò)將多個(gè)目標(biāo)軌跡點(diǎn)組成的大量數(shù)據(jù)進(jìn)行優(yōu)化分隔排序處理,以此來(lái)減少對(duì)整個(gè)軌跡點(diǎn)數(shù)據(jù)的多次反復(fù)的遍歷,從而減少重復(fù)排序工作,縮短軌跡回放的處理時(shí)間,提尚畫(huà)面響應(yīng)速度,做到多目標(biāo)同步顯不。
[0043]具體的,本方案首先連接FTP,下載所需的軌跡二進(jìn)制文件,然后轉(zhuǎn)化二進(jìn)制文件,篩選軌跡點(diǎn);針對(duì)篩選后的數(shù)據(jù)按照播放時(shí)長(zhǎng),計(jì)算所需分隔的數(shù)量;遍歷所以軌跡點(diǎn)填充分隔區(qū),形成按時(shí)序排列的分隔數(shù)據(jù)區(qū);啟動(dòng)計(jì)時(shí)器,播放軌跡。
[0044]假如有4個(gè)軌跡點(diǎn)分別為:I分I秒、I分3秒、I分6秒、I分10秒,要求10秒播放完(播放時(shí)長(zhǎng)),4個(gè)軌跡點(diǎn)的做大時(shí)間間隔為10秒,最大時(shí)間間隔/分隔的數(shù)量(設(shè)為10),即每個(gè)間隔需要處理的時(shí)間,第一個(gè)分隔為軌跡點(diǎn)I分I秒,第二個(gè)分隔沒(méi)有軌跡點(diǎn),第三個(gè)分隔為軌跡點(diǎn)I分3秒,第四個(gè)分隔沒(méi)有軌跡點(diǎn)…第10個(gè)間隔為軌跡點(diǎn)I分10秒。
[0045]其中將符合分隔所需時(shí)間的軌跡點(diǎn)填入分區(qū)數(shù)據(jù)區(qū),由此形成按時(shí)間排序的排列的分隔數(shù)據(jù)區(qū)。
[0046]以通過(guò)一具體實(shí)例來(lái)進(jìn)一步說(shuō)明本方案:
[0047]本實(shí)例基于一個(gè)多個(gè)目標(biāo)軌跡點(diǎn)放回系統(tǒng)來(lái)實(shí)現(xiàn),該系統(tǒng)主要包括一處理器、寄存器、數(shù)據(jù)存儲(chǔ)器以及其他所需的部件(如控制鍵、顯示器等等),其中寄存器中設(shè)置有相應(yīng)的多個(gè)目標(biāo)軌跡點(diǎn)回放控制程序,該控制程序基于本發(fā)明方案形成;數(shù)據(jù)存儲(chǔ)器用于存儲(chǔ)待回放的由多個(gè)目標(biāo)軌跡點(diǎn)組成的大量數(shù)據(jù)以及整個(gè)系統(tǒng)運(yùn)行所產(chǎn)生的數(shù)據(jù);處理器調(diào)用寄存器中相應(yīng)的回放控制程序?qū)?shù)據(jù)存儲(chǔ)器中存儲(chǔ)的由多個(gè)目標(biāo)軌跡點(diǎn)組成的大量數(shù)據(jù)進(jìn)行多個(gè)目標(biāo)軌跡點(diǎn)的快速按時(shí)序播放。其具體的控制過(guò)程如下(參見(jiàn)圖1):
[0048](101)設(shè)置時(shí)間和FTP路徑;
[0049](102)與目標(biāo)FTP連接;
[0050](103)通過(guò)FTP下載所需的軌跡點(diǎn)二進(jìn)制文件;
[0051](104)轉(zhuǎn)化二進(jìn)制軌跡點(diǎn)文件;
[0052](105)篩選軌跡點(diǎn),去除連續(xù)相同位置軌跡點(diǎn);
[0053](106)獲取所有軌跡點(diǎn)的最小時(shí)間和最大時(shí)間,以及軌跡點(diǎn)需要分成多少間隔N ;
[0054](107)計(jì)算最大時(shí)間和最小時(shí)間的時(shí)間間隔,以及每個(gè)軌跡間隔的時(shí)長(zhǎng);
[0055](108)循環(huán)每個(gè)間隔,判斷是否是最后一個(gè)軌跡間隔,如果不是轉(zhuǎn)(109),如果是轉(zhuǎn)(121);
[0056](109)計(jì)算當(dāng)前軌跡間隔的最大時(shí)間;
[0057](110)循環(huán)目標(biāo)軌跡Map容器,是否到最后一個(gè)目標(biāo)號(hào)軌跡,如果是轉(zhuǎn)(111),否則轉(zhuǎn)(112);
[0058](111)將間隔臨時(shí)VECTOR容器放入間隔vector容器,轉(zhuǎn)(108);
[0059](112)判斷該目標(biāo)號(hào)之前是否處理標(biāo)記過(guò),如果不是轉(zhuǎn)(113),否則轉(zhuǎn)(119);
[0060](113)將該目標(biāo)號(hào)軌跡LIST容器起始指針指向開(kāi)始處;
[0061](114)判斷List容器起始指針指向的軌跡點(diǎn)時(shí)間是否大于當(dāng)前軌跡間隔的最大時(shí)間,如果是轉(zhuǎn)(110),如果不是轉(zhuǎn)(115);
[0062](115)循環(huán)該目標(biāo)號(hào)軌跡點(diǎn)LIST容器,是否到該目標(biāo)號(hào)軌跡點(diǎn)LIST容器底部,如果是轉(zhuǎn)(121),否則轉(zhuǎn)(116);
[0063](116)判斷當(dāng)前軌跡點(diǎn)的時(shí)間是否大于該軌跡間隔的最大時(shí)間,如果是轉(zhuǎn)(117),否則轉(zhuǎn)(118-1);
[0064](117)將該目標(biāo)號(hào)標(biāo)記,并將該軌跡點(diǎn)標(biāo)記;
[0065](118)將臨時(shí)LIST容器放入到間隔臨時(shí)VECTOR容器中,清空臨時(shí)LIST容器,轉(zhuǎn)
(110);
[0066](118-1)將該軌跡點(diǎn)放入臨時(shí)List容器,(轉(zhuǎn)116);
[0067](119)將該目標(biāo)號(hào)軌跡list容器起始指針指向上次處理停留處;
[0068](120)刪除該目標(biāo)號(hào)處理標(biāo)記,轉(zhuǎn)(115);
[0069](121)開(kāi)起計(jì)時(shí)器,準(zhǔn)備回放;
[0070](122)循環(huán)所有間隔是否結(jié)束,如果結(jié)束轉(zhuǎn)(129),否則轉(zhuǎn)(123);
[0071](123)循環(huán)當(dāng)前間隔軌跡容器里每個(gè)目標(biāo)是否結(jié)束,如果結(jié)束,本次計(jì)時(shí)器處理結(jié)束,否則轉(zhuǎn)(124);
[0072](124)循環(huán)該目標(biāo)每個(gè)軌跡點(diǎn)是否結(jié)束,如果結(jié)束轉(zhuǎn)(123),否則轉(zhuǎn)(125);
[0073](125)判斷是否為第一個(gè)軌跡點(diǎn),如果是轉(zhuǎn)(128),否則轉(zhuǎn)(126);
[0074](126)判斷當(dāng)前點(diǎn)距離上一個(gè)是否超過(guò)限制距離,如果超過(guò)(這里的限制距離是個(gè)常量,預(yù)先設(shè)定好,首先計(jì)算當(dāng)前點(diǎn)和上個(gè)點(diǎn)兩點(diǎn)之間的距離,然后和限制距離比較大小,由此來(lái)確定是否超過(guò));否則轉(zhuǎn)(127);
[0075](127)連接當(dāng)前點(diǎn)和上個(gè)點(diǎn);
[0076](128)畫(huà)當(dāng)前點(diǎn),轉(zhuǎn)(124);
[0077](129)結(jié)束。
[0078]通過(guò)實(shí)驗(yàn)證明,本實(shí)例方案與其它方法相比快了數(shù)倍,取得了很好的視覺(jué)效果和體驗(yàn)。
[0079]以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說(shuō)明書(shū)中描述的只是說(shuō)明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書(shū)及其等效物界定。
【主權(quán)項(xiàng)】
1.一種快速按時(shí)序播放多個(gè)目標(biāo)軌跡點(diǎn)的回放方法,其特征在于,所述方法將多個(gè)目標(biāo)軌跡點(diǎn)組成的大量數(shù)據(jù),按照播放時(shí)長(zhǎng),計(jì)算所需分隔的數(shù)量,再遍歷以軌跡點(diǎn)填充分隔區(qū),形成按時(shí)序排列的分隔數(shù)據(jù)區(qū);最后啟動(dòng)計(jì)時(shí)器,播放軌跡。2.根據(jù)權(quán)利要求1所述的一種快速按時(shí)序播放多個(gè)目標(biāo)軌跡點(diǎn)的回放方法,其特征在于,所述回放方法包括如下步驟: (101)設(shè)置時(shí)間和FTP路徑; (102)與目標(biāo)FTP連接; (103)通過(guò)FTP下載所需的軌跡點(diǎn)二進(jìn)制文件; (104)轉(zhuǎn)化二進(jìn)制軌跡點(diǎn)文件; (105)篩選軌跡點(diǎn),去除連續(xù)相同位置軌跡點(diǎn); (106)獲取所有軌跡點(diǎn)的最小時(shí)間和最大時(shí)間,以及軌跡點(diǎn)需要分成多少間隔N; (107)計(jì)算最大時(shí)間和最小時(shí)間的時(shí)間間隔,以及每個(gè)軌跡間隔的時(shí)長(zhǎng); (108)循環(huán)每個(gè)間隔,判斷是否是最后一個(gè)軌跡間隔,如果不是轉(zhuǎn)(109),如果是轉(zhuǎn)(121); (109)計(jì)算當(dāng)前軌跡間隔的最大時(shí)間; (110)循環(huán)目標(biāo)軌跡Map容器,是否到最后一個(gè)目標(biāo)號(hào)軌跡,如果是轉(zhuǎn)(111),否則轉(zhuǎn)(112); (111)將間隔臨時(shí)VECTOR容器放入間隔vector容器,轉(zhuǎn)(108); (112)判斷該目標(biāo)號(hào)之前是否處理標(biāo)記過(guò),如果不是轉(zhuǎn)(113),否則轉(zhuǎn)(119); (113)將該目標(biāo)號(hào)軌跡LIST容器起始指針指向開(kāi)始處; (114)判斷List容器起始指針指向的軌跡點(diǎn)時(shí)間是否大于當(dāng)前軌跡間隔的最大時(shí)間,如果是轉(zhuǎn)(110),如果不是轉(zhuǎn)(115); (115)循環(huán)該目標(biāo)號(hào)軌跡點(diǎn)LIST容器,是否到該目標(biāo)號(hào)軌跡點(diǎn)LIST容器底部,如果是轉(zhuǎn)(121),否則轉(zhuǎn)(116); (116)判斷當(dāng)前軌跡點(diǎn)的時(shí)間是否大于該軌跡間隔的最大時(shí)間,如果是轉(zhuǎn)(117),否則轉(zhuǎn)(118-1); (117)將該目標(biāo)號(hào)標(biāo)記,并將該軌跡點(diǎn)標(biāo)記; (118)將臨時(shí)LIST容器放入到間隔臨時(shí)VECTOR容器中,清空臨時(shí)LIST容器,轉(zhuǎn)(110); (118-1)將該軌跡點(diǎn)放入臨時(shí)List容器,(轉(zhuǎn)116); (119)將該目標(biāo)號(hào)軌跡list容器起始指針指向上次處理停留處; (120)刪除該目標(biāo)號(hào)處理標(biāo)記,轉(zhuǎn)(115); (121)開(kāi)起計(jì)時(shí)器,準(zhǔn)備回放; (122)循環(huán)所有間隔是否結(jié)束,如果結(jié)束轉(zhuǎn)(129),否則轉(zhuǎn)(123); (123)循環(huán)當(dāng)前間隔軌跡容器里每個(gè)目標(biāo)是否結(jié)束,如果結(jié)束,本次計(jì)時(shí)器處理結(jié)束,否則轉(zhuǎn)(124); (124)循環(huán)該目標(biāo)每個(gè)軌跡點(diǎn)是否結(jié)束,如果結(jié)束轉(zhuǎn)(123),否則轉(zhuǎn)(125); (125)判斷是否為第一個(gè)軌跡點(diǎn),如果是轉(zhuǎn)(128),否則轉(zhuǎn)(126); (126)判斷當(dāng)前點(diǎn)距離上一個(gè)是否超過(guò)限制距離,如果超過(guò);否則轉(zhuǎn)(127);(127)連接當(dāng)前點(diǎn)和上個(gè)點(diǎn);(128)畫(huà)當(dāng)前點(diǎn),轉(zhuǎn)(124);(129)結(jié)束。
【文檔編號(hào)】G06F17/30GK105989023SQ201510050815
【公開(kāi)日】2016年10月5日
【申請(qǐng)日】2015年1月30日
【發(fā)明人】時(shí)文東, 蔡亞平, 林逢春, 許曉輝, 王新剛
【申請(qǐng)人】國(guó)網(wǎng)吉林省電力有限公司延邊供電公司, 上海申瑞電網(wǎng)控制系統(tǒng)有限公司