1フレームごとに行われる処理
毎フレームごとに飛跡の候補となるピクセルの集まりが findContours により検索され、vector の vector (vector<vector<Point>>) として保持されます。それらをフレーム同志で結びつけるために図1のような処理が行われています。
図1の中で old は、前フレームの merged のコピーであり全く同じです。フレームの中で new が、findContours された結果になります。

次に、前フレームのコピーである old の中の vectorたちに対して、new の中の vectorたちと比較することで、同じ飛跡だと思われる vector がみつかるとその情報で更新、みつからなかったらそこで飛跡は消滅と判断、全く新しい vector については新規に飛跡が発生したという処理を行い merged にします。
飛跡認識までの流れ
図2に飛跡認識までの流れを示します。まず old の中に含まれず、new の中にのみふくまれるvector があると、それは飛跡候補となります。そして何フレームかを経て、old の中に含まれるが new の中にはない vector は、発生してからの時間をチェックした上で飛跡として認識されカウントが行われます。発生してからの時間があまりにも長いものはノイズの可能性があるので棄却されます。
