Interface PointTracker<T extends ImageBase>
-
- All Known Subinterfaces:
- PointTrackerTwoPass<T>
- All Known Implementing Classes:
- DetectDescribeAssociate, DetectDescribeAssociateTwoPass, PointTrackerCombined, PointTrackerKltPyramid, PointTrackerToTwoPass, PointTrackerTwoPassCombined, PointTrackerTwoPassKltPyramid
public interface PointTracker<T extends ImageBase>Interface for tracking point features in image sequences with automatic feature selection for use in Structure From Motion (SFM) application. Access is provided to the pixel location of each track. Implementation specific track information is hidden from the user.
Each track can have the following states, active, inactive, new, and dropped. An active track is one which was recently updated in the latest image, while an inactive one was not. New tracks were spawned in the most recent image. Dropped tracks are tracks which were automatically dropped in the most recent update.
TRACK MAINTENANCE: Implementations of this interface should not automatically drop tracks or perform other forms of track maintenance unless the feature is hopelessly lost and can no longer be tracked. It is the responsibility of the user to drop tracks which are inactive for an excessive amount of time. New tracks should never be spawned unless specifically requested by the user.
TRACK MEMORY: Implementations of this interface must recycle tracks. After a track has been dropped, either by the user or automatically, the reference should be saved and the user provided cookie left unmodified. When a new track is added the track information should be updated and the cookie left unmodified again. The intended purpose of this requirement is to reduce the burden of memory maintenance on the user and to encourage good memory management.
NOTE: Tracks dropped by the user will not be included in the dropped list.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method and Description voiddropAllTracks()Drops all feature to be dropped and will no longer be tracked.booleandropTrack(PointTrack track)Manually forces a track to be dropped.java.util.List<PointTrack>getActiveTracks(java.util.List<PointTrack> list)Returns a list of active tracks.java.util.List<PointTrack>getAllTracks(java.util.List<PointTrack> list)Returns a list of all features that are currently being trackedjava.util.List<PointTrack>getDroppedTracks(java.util.List<PointTrack> list)Returns a list of tracks dropped by the tracker during the most recent update.java.util.List<PointTrack>getInactiveTracks(java.util.List<PointTrack> list)Returns a list of inactive tracks.java.util.List<PointTrack>getNewTracks(java.util.List<PointTrack> list)Returns a list of tracks that have been added since process was called.voidprocess(T image)Process input image and perform tracking.voidreset()Discard memory of all current and past tracks.voidspawnTracks()Automatically selects new features in the image to track.
-
-
-
Method Detail
-
process
void process(T image)
Process input image and perform tracking.- Parameters:
image- Next image in the sequence
-
reset
void reset()
Discard memory of all current and past tracks. Growing buffered might not be reset to their initial size by this method.
-
dropAllTracks
void dropAllTracks()
Drops all feature to be dropped and will no longer be tracked. Tracks dropped using this function will not appear in the dropped list.
-
dropTrack
boolean dropTrack(PointTrack track)
Manually forces a track to be dropped. Tracks dropped using this function will not appear in the dropped list and their data is subject to being immediately recycled. New requests to all and active lists will not include the track after it has been dropped using this function. If request is made to drop a track that is not being tracked (in the internal all list), then the request is ignored.- Parameters:
track- The track which is to be dropped- Returns:
- true if the request to drop the track was done or if it was ignored because the track wasn't being tracked
-
getAllTracks
java.util.List<PointTrack> getAllTracks(java.util.List<PointTrack> list)
Returns a list of all features that are currently being tracked- Parameters:
list- Optional storage for the list of tracks. If null a new list will be declared internally.- Returns:
- List of tracks.
-
getActiveTracks
java.util.List<PointTrack> getActiveTracks(java.util.List<PointTrack> list)
Returns a list of active tracks. An active track is defined as a track which was found in the most recently processed image.- Parameters:
list- Optional storage for the list of tracks. If null a new list will be declared internally.- Returns:
- List of tracks.
-
getInactiveTracks
java.util.List<PointTrack> getInactiveTracks(java.util.List<PointTrack> list)
Returns a list of inactive tracks. A track is inactive if it is not associated with any features in the current image.- Parameters:
list- Optional storage for the list of tracks. If null a new list will be declared internally.- Returns:
- List of tracks.
-
getDroppedTracks
java.util.List<PointTrack> getDroppedTracks(java.util.List<PointTrack> list)
Returns a list of tracks dropped by the tracker during the most recent update. Tracks dropped by user request are not included in this list.- Parameters:
list- Optional storage for the list of tracks. If null a new list will be declared internally.- Returns:
- List of tracks.
-
getNewTracks
java.util.List<PointTrack> getNewTracks(java.util.List<PointTrack> list)
Returns a list of tracks that have been added since process was called.- Parameters:
list- Optional storage for the list of tracks. If null a new list will be declared internally.- Returns:
- List of tracks.
-
spawnTracks
void spawnTracks()
Automatically selects new features in the image to track. Returned tracks must be unique and not duplicates of any existing tracks. This includes both active and inactive tracks. NOTE: This function may or may not also modify the active and inactive lists.
-
-
DataMelt 3.0 © DataMelt by jWork.ORG