public class CombinedTrackerScalePoint<I extends boofcv.struct.image.ImageGray,D extends boofcv.struct.image.ImageGray,TD extends TupleDesc>
extends java.lang.Object
Combines a KLT tracker with Detect-Describe-Associate type trackers. Features are nominally tracked using KLT, but after KLT drops a track it is deactivated and made dormant. Upon request, it will attempt to reactivate a dormant track by associating it with newly detected features. After a track has been reactivated it will be tracked normally.
| Modifier and Type | Field and Description |
|---|---|
protected AssociateDescription<TD> |
associate |
protected org.ddogleg.struct.FastQueue<TD> |
detectedDesc |
protected DetectDescribePoint<I,TD> |
detector |
protected org.ddogleg.struct.FastQueue<TD> |
knownDesc |
protected long |
totalTracks |
protected PyramidKltForCombined<I,D> |
trackerKlt |
protected java.util.List<CombinedTrack<TD>> |
tracksDormant |
protected java.util.List<CombinedTrack<TD>> |
tracksPureKlt |
protected java.util.List<CombinedTrack<TD>> |
tracksReactivated |
protected java.util.List<CombinedTrack<TD>> |
tracksSpawned |
protected java.util.Stack<CombinedTrack<TD>> |
tracksUnused |
| Modifier | Constructor and Description |
|---|---|
protected |
CombinedTrackerScalePoint()
Used for unit tests
|
|
CombinedTrackerScalePoint(PyramidKltForCombined<I,D> trackerKlt,
DetectDescribePoint<I,TD> detector,
AssociateDescription<TD> associate)
Configures tracker
|
| Modifier and Type | Method and Description |
|---|---|
void |
associateAllToDetected()
Associate all tracks in any state to the latest observations.
|
void |
dropAllTracks()
Drops all tracks and recycles the data
|
boolean |
dropTrack(CombinedTrack<TD> track)
Stops tracking the specified track and recycles its data.
|
DetectDescribePoint<I,TD> |
getDetector() |
java.util.List<CombinedTrack<TD>> |
getDormant() |
java.util.List<CombinedTrack<TD>> |
getPureKlt() |
java.util.List<CombinedTrack<TD>> |
getReactivated() |
java.util.List<CombinedTrack<TD>> |
getSpawned() |
PyramidKltForCombined<I,D> |
getTrackerKlt() |
void |
reset()
Sets the tracker into its initial state.
|
void |
spawnTracksFromDetected()
From the found interest points create new tracks.
|
void |
updateTracks(I input,
boofcv.struct.pyramid.PyramidDiscrete<I> pyramid,
D[] derivX,
D[] derivY)
Updates the location and description of tracks using KLT.
|
protected PyramidKltForCombined<I extends boofcv.struct.image.ImageGray,D extends boofcv.struct.image.ImageGray> trackerKlt
protected DetectDescribePoint<I extends boofcv.struct.image.ImageGray,TD extends TupleDesc> detector
protected AssociateDescription<TD extends TupleDesc> associate
protected java.util.List<CombinedTrack<TD extends TupleDesc>> tracksPureKlt
protected java.util.List<CombinedTrack<TD extends TupleDesc>> tracksReactivated
protected java.util.List<CombinedTrack<TD extends TupleDesc>> tracksDormant
protected java.util.List<CombinedTrack<TD extends TupleDesc>> tracksSpawned
protected java.util.Stack<CombinedTrack<TD extends TupleDesc>> tracksUnused
protected long totalTracks
public CombinedTrackerScalePoint(PyramidKltForCombined<I,D> trackerKlt, DetectDescribePoint<I,TD> detector, AssociateDescription<TD> associate)
trackerKlt - KLT tracker used nominallydetector - Feature detectorassociate - Association algorithmprotected CombinedTrackerScalePoint()
public void reset()
public void updateTracks(I input, boofcv.struct.pyramid.PyramidDiscrete<I> pyramid, D[] derivX, D[] derivY)
input - Input image.pyramid - Image pyramid of input.derivX - Derivative pyramid of input x-axisderivY - Derivative pyramid of input y-axispublic void spawnTracksFromDetected()
associateAllToDetected().public void associateAllToDetected()
public boolean dropTrack(CombinedTrack<TD> track)
track - The track being droppedpublic java.util.List<CombinedTrack<TD>> getSpawned()
public java.util.List<CombinedTrack<TD>> getPureKlt()
public java.util.List<CombinedTrack<TD>> getReactivated()
public java.util.List<CombinedTrack<TD>> getDormant()
public PyramidKltForCombined<I,D> getTrackerKlt()
public DetectDescribePoint<I,TD> getDetector()
public void dropAllTracks()