|
Ocean
|
This class implements point path tracker allowing to track image points from frame to frame within a stream of several successive frames. More...
#include <PointPaths.h>
Data Structures | |
| class | TrackingConfiguration |
| Definition of a class holding a point tracking configuration. More... | |
Public Types | |
| enum | MotionSpeed { MS_SLOW , MS_MODERATE , MS_FAST } |
| Definition of individual camera motion speeds. More... | |
| enum | TrackingMethod { TM_INVALID , TM_FIXED_PATCH_SIZE_7 , TM_FIXED_PATCH_SIZE_15 , TM_FIXED_PATCH_SIZE_31 } |
| Definition of individual tracking methods. More... | |
Static Public Member Functions | |
| static bool | determinePointPaths (CV::FrameProviderInterface &frameProviderInterface, const FrameType::PixelFormat pixelFormat, const FrameType::PixelOrigin pixelOrigin, const TrackingConfiguration &trackingConfiguration, const unsigned int lowerFrameIndex, const unsigned int startFrameIndex, const unsigned int upperFrameIndex, const unsigned int invalidBorderSize, const bool onlyNewObjectPoints, Database &database, Worker *worker=nullptr, bool *abort=nullptr, Scalar *progress=nullptr) |
| Tracks reliable points between successive frames and joins points paths to a common/shared object points. | |
| static bool | determinePointPaths (CV::FrameProviderInterface &frameProviderInterface, const FrameType::PixelFormat pixelFormat, const FrameType::PixelOrigin pixelOrigin, const TrackingConfiguration &trackingConfiguration, const unsigned int lowerFrameIndex, const CV::SubRegion &subRegion, const unsigned int subRegionFrameIndex, const unsigned int upperFrameIndex, const unsigned int invalidBorderSize, const bool onlyNewObjectPoints, Database &database, Worker *worker=nullptr, bool *abort=nullptr, Scalar *progress=nullptr) |
| Tracks reliable points between successive frames starting at a specific frame in a specific sub-region. | |
| static bool | determineTrackingConfiguration (CV::FrameProviderInterface &frameProviderInterface, const CV::SubRegion ®ionOfInterest, const OfflineTracker::TrackingQuality trackingQuality, const MotionSpeed motionSpeed, TrackingConfiguration *frameTrackingConfiguration, TrackingConfiguration *regionOfInterestTrackingConfiguration, bool *abort=nullptr) |
| Determines the tracking configuration for an explicit specified tracking quality. | |
| static bool | determineAutomaticTrackingConfiguration (CV::FrameProviderInterface &frameProviderInterface, const FrameType::PixelOrigin pixelOrigin, const MotionSpeed motionSpeed, const unsigned int frameIndex, const CV::SubRegion ®ionOfInterest, TrackingConfiguration *frameTrackingConfiguration, TrackingConfiguration *regionOfInterestTrackingConfiguration, Worker *worker=nullptr, bool *abort=nullptr) |
| Determines the best matching tracking configuration for the point tracker starting at a specific frame. | |
| static bool | determineAutomaticTrackingConfiguration (CV::FrameProviderInterface &frameProviderInterface, const FrameType::PixelOrigin pixelOrigin, const MotionSpeed motionSpeed, const unsigned int lowerFrameIndex, const unsigned int upperFrameIndex, TrackingConfiguration &frameTrackingConfiguration, const unsigned int intermediateFrames=5u, Worker *worker=nullptr, bool *abort=nullptr) |
| Determines the best matching tracking configuration for the point tracker tracking frames within a specified frame range. | |
| static void | idealPyramidParameters (const unsigned int width, const unsigned int height, const MotionSpeed motionSpeed, unsigned int &coarsestLayerRadius, unsigned int &layers, const unsigned int maximalCoarsestLayerRadius=26u, const unsigned int maximalLayers=(unsigned int)(-1)) |
| Determines the number of necessary pyramid layers and coarsest layer radius for a specified frame dimension and motion speed. | |
Protected Types | |
| using | TrackingConfigurationPair = std::pair< TrackingConfiguration, unsigned int > |
| Definition of a pair combining a tracker configuration and a ratio value. | |
| using | TrackingConfigurationPairs = std::vector< TrackingConfigurationPair > |
| Definition of a vector holding TrackingConfigurationPair objects. | |
| using | Strengths = std::vector< int > |
| Definition of a vector holding strength parameters. | |
Static Protected Member Functions | |
| static bool | trackPoints (const CV::FramePyramid &previousFramePyramid, const CV::FramePyramid ¤tFramePyramid, const unsigned int coarsestLayerRadius, const Strengths &previousFeatureStrengths, const TrackingMethod trackingMethod, Vectors2 &previousFeaturePoints, Vectors2 ¤tFeaturePoints, Indices32 &validIndices, Worker *worker) |
| Applies a bidirectional tracking of points between to frames. | |
This class implements point path tracker allowing to track image points from frame to frame within a stream of several successive frames.
|
protected |
Definition of a vector holding strength parameters.
|
protected |
Definition of a pair combining a tracker configuration and a ratio value.
|
protected |
Definition of a vector holding TrackingConfigurationPair objects.
|
static |
Determines the best matching tracking configuration for the point tracker starting at a specific frame.
The most suitable configuration can either be determined for the entire frame, for a specified region of interest or for both areas.
| frameProviderInterface | The frame provider interface providing the frame access |
| pixelOrigin | The origin of the frame for which the configuration will be determined |
| motionSpeed | The expected motion speed of the image content |
| frameIndex | The index of the frame for which the configuration will be determined |
| regionOfInterest | The optional region of interest for which the specific region-of-interest-configuration may be determined, an invalid region otherwise |
| frameTrackingConfiguration | The resulting tracking configuration for the entire frame, if defined |
| regionOfInterestTrackingConfiguration | The resulting tracking configuration for the specified region of interest, if defined and if a region of interest is defined |
| worker | Optional worker object to distribute the computation |
| abort | Optional abort statement allowing to stop the execution; True, if the execution has to stop |
|
static |
Determines the best matching tracking configuration for the point tracker tracking frames within a specified frame range.
| frameProviderInterface | The frame provider interface providing the frame access |
| pixelOrigin | The origin of the frame for which the configuration will be determined |
| motionSpeed | The expected motion speed of the image content |
| lowerFrameIndex | The index of the frame defining the lower frame range, with range [0, infinity) |
| upperFrameIndex | The index of the frame defining the upper frame range, with range [lowerFrameIndex, infinity) |
| frameTrackingConfiguration | The resulting tracking configuration for the entire frame |
| intermediateFrames | The number of intermediate frames which will be distributed within the specified frame range to determine the best matching configuration |
| worker | Optional worker object to distribute the computation |
| abort | Optional abort statement allowing to stop the execution; True, if the execution has to stop |
|
static |
Tracks reliable points between successive frames starting at a specific frame in a specific sub-region.
Successive tracked points will be joined to a path representing the same object point.
| frameProviderInterface | The frame provider interface which is used to extract the individual frames, must be valid and must be initialized |
| pixelFormat | The pixel format which is used for each frame |
| pixelOrigin | The pixel origin which is used for each frame |
| trackingConfiguration | The tracking configuration that is applied to track the points |
| lowerFrameIndex | The index of the lower frame which will be used for tracking |
| subRegion | The sub-region defining a specific frame area in the start frame in which all reliable points will be tracked |
| subRegionFrameIndex | The index of the frame in which the sub-region is defined |
| upperFrameIndex | The index of the upper frame which will be used for tracking, with range [lowerFrame, infinity) |
| invalidBorderSize | The border size at the outer frame border in which tracked points will count as invalid, in pixel, with range [0, min(width / 2, height / 2)) |
| onlyNewObjectPoints | True, to add and track only object points which are not part of the database yet |
| database | The resulting database holding the object points, image points and camera poses after tracking, must be empty |
| worker | Optional worker object to distribute the computation |
| abort | Optional abort statement allowing to stop the execution; True, if the execution has to stop |
| progress | Optional resulting progress with range [0, 1] |
|
static |
Tracks reliable points between successive frames and joins points paths to a common/shared object points.
Further, camera poses are registered for each camera frame (without the actual pose determination).
| frameProviderInterface | The frame provider interface which is used to extract the individual frames, must be valid and must be initialized |
| pixelFormat | The pixel format which is used for each frame |
| pixelOrigin | The pixel origin which is used for each frame |
| trackingConfiguration | The tracking configuration that is applied to track the points |
| lowerFrameIndex | The index of the lower frame which will be used for tracking |
| startFrameIndex | The index of the frame at which the determination of the point paths will start, with range [lowerFrameIndex, upperFrameIndex] |
| upperFrameIndex | The index of the upper frame which will be used for tracking, with range [lowerFrame, infinity) |
| invalidBorderSize | The border size at the outer frame border in which tracked points will count as invalid, in pixel, with range [0, min(width / 2, height / 2)) |
| onlyNewObjectPoints | True, to add and track only object points which are not part of the database yet |
| database | The resulting database holding the object points, image points and camera poses after tracking, must be empty |
| worker | Optional worker object to distribute the computation |
| abort | Optional abort statement allowing to stop the execution; True, if the execution has to stop |
| progress | Optional resulting progress with range [0, 1] |
|
static |
Determines the tracking configuration for an explicit specified tracking quality.
| frameProviderInterface | The frame provider interface providing the frame access |
| regionOfInterest | The optional region of interest for which the specific region-of-interest-configuration may be determined, an invalid region otherwise |
| trackingQuality | The tracking quality for which the tracking configuration will be determined |
| motionSpeed | The expected motion speed of the image content |
| frameTrackingConfiguration | The resulting tracking configuration for the entire frame, if defined |
| regionOfInterestTrackingConfiguration | The resulting tracking configuration for the specified region of interest, if defined and if a region of interest is defined |
| abort | Optional abort statement allowing to stop the execution; True, if the execution has to stop |
|
static |
Determines the number of necessary pyramid layers and coarsest layer radius for a specified frame dimension and motion speed.
| width | The width of the frame (the width of the finest pyramid layer) in pixel, with range [1, infinity) |
| height | The height of the frame (the height of the finest pyramid layer) in pixel, with range [1, infinity) |
| motionSpeed | The motion speed for which the minimal number of pyramid layers will be determined |
| coarsestLayerRadius | Resulting search radius for the coarsest pyramid layer, with range [2, infinity) |
| layers | Resulting number of pyramid layers necessary for the defined parameters, with range [3, infinity) |
| maximalCoarsestLayerRadius | The maximal (largest) search radius on the coarsest pyramid layers which can be accepted, with range [2, infinity) |
| maximalLayers | The maximal number of pyramid layers which can be accepted, with range [1, infinity) |
|
staticprotected |
Applies a bidirectional tracking of points between to frames.
| previousFramePyramid | The frame pyramid of the previous frame, must be valid |
| currentFramePyramid | The frame pyramid of the current frame, must be valid and must have the same number of layers as 'previousFramePyramid' |
| coarsestLayerRadius | The search radius on the coarsest layer, with range [2, infinity) |
| previousFeatureStrengths | The strength values for each individual previous image point |
| trackingMethod | The tracking method to be used to track the points |
| previousFeaturePoints | The image points located in the previous frame |
| currentFeaturePoints | The resulting tracked image points located in the current frame |
| validIndices | The indices of all image points that could be tracked reliably |
| worker | Optional worker object to distribute the computation |