Ocean
|
This class implements point path tracker allowing to track image points from frame to frame within a stream of several successive frames. More...
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Protected Types | |
using | TrackingConfigurationPair = std::pair< TrackingConfiguration, unsigned int > |
Definition of a pair combining a tracker configuration and a ratio value. More... | |
using | TrackingConfigurationPairs = std::vector< TrackingConfigurationPair > |
Definition of a vector holding TrackingConfigurationPair objects. More... | |
using | Strengths = std::vector< int > |
Definition of a vector holding strength parameters. More... | |
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. More... | |
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 |