![]() |
Visual Servoing Platform version 3.7.0
|
#include <vpMeTracker.h>
Public Member Functions | |
| vpMeTracker () | |
| vpMeTracker (const vpMeTracker &meTracker) | |
| virtual | ~vpMeTracker () VP_OVERRIDE |
Public Member Functions Inherited from vpTracker | |
| vpColVector | get_p () const |
| vpColVector | get_cP () const |
Static Public Member Functions | |
Deprecated functions | |
| static VP_DEPRECATED bool | inMask (const vpImage< bool > *mask, unsigned int i, unsigned int j) |
Public Attributes | |
Public Attributes Inherited from vpTracker | |
| vpColVector | p |
| vpColVector | cP |
| bool | cPAvailable |
Protected Attributes | |
Protected Attributes Inherited from vpMeTracker | |
| std::list< vpMeSite > | m_meList |
| vpMe * | m_me |
| int | m_nGoodElement |
| const vpImage< bool > * | m_mask |
| const vpImage< bool > * | m_maskCandidates |
| vpMeSite::vpMeSiteDisplayType | m_selectDisplay |
Public Member Functions Inherited from vpMeTracker | |
| void | display (const vpImage< unsigned char > &I) |
| void | display (const vpImage< vpRGBa > &I) |
| void | display (const vpImage< unsigned char > &I, vpColVector &w, unsigned int &index_w) |
| vpMe * | getMe () |
| std::list< vpMeSite > & | getMeList () |
| std::list< vpMeSite > | getMeList () const |
| int | getNbPoints () const |
| void | init () |
| void | initTracking (const vpImage< unsigned char > &I) |
| unsigned int | numberOfSignal () |
| vpMeTracker & | operator= (vpMeTracker &meTracker) |
| bool | outOfImage (int i, int j, int border, int nrows, int ncols) |
| bool | outOfImage (const vpImagePoint &iP, int border, int nrows, int ncols) |
| void | reset () |
| virtual void | sample (const vpImage< unsigned char > &image, bool doNotTrack=false)=0 |
| void | setDisplay (vpMeSite::vpMeSiteDisplayType select) |
| virtual void | setMask (const vpImage< bool > &mask) |
| virtual void | setMaskCandidates (const vpImage< bool > *maskCandidates) |
| void | setMe (vpMe *me) |
| void | setMeList (const std::list< vpMeSite > &meList) |
| unsigned int | totalNumberOfSignal () |
| void | track (const vpImage< unsigned char > &I) |
| static bool | inRoiMask (const vpImage< bool > *mask, unsigned int i, unsigned int j) |
| static bool | inMeMaskCandidates (const vpImage< bool > *meMaskCandidates, unsigned int i, unsigned int j) |
Contains abstract elements for a Distance to Feature type feature.
2D state = list of points, 3D state = feature
Tutorials
If you are interested in using a ME tracker in your application, you may have a look at:
Definition at line 68 of file vpMeTracker.h.
| vpMeTracker::vpMeTracker | ( | ) |
Default constructor.
Definition at line 56 of file vpMeTracker.cpp.
References init(), m_mask, m_maskCandidates, m_me, m_meList, m_nGoodElement, and m_selectDisplay.
Referenced by operator=(), vpMeEllipse::vpMeEllipse(), vpMeLine::vpMeLine(), vpMeNurbs::vpMeNurbs(), and vpMeTracker().
| vpMeTracker::vpMeTracker | ( | const vpMeTracker & | meTracker | ) |
Copy constructor.
Definition at line 62 of file vpMeTracker.cpp.
References init(), m_mask, m_maskCandidates, m_me, m_meList, m_nGoodElement, m_selectDisplay, vpMeTracker(), and vpTracker::vpTracker().
|
virtual |
| void vpMeTracker::display | ( | const vpImage< unsigned char > & | I | ) |
Display the moving edge sites with a color corresponding to their state.
| [in] | I | : The image. |
Definition at line 252 of file vpMeTracker.cpp.
References vpMeSite::display(), and m_meList.
Referenced by display(), vpMeEllipse::initTracking(), vpMeEllipse::initTracking(), and vpMeLine::track().
| void vpMeTracker::display | ( | const vpImage< unsigned char > & | I, |
| vpColVector & | w, | ||
| unsigned int & | index_w ) |
Displays the status of moving edge sites
| [in] | I | : The image. |
| [in] | w | : vector |
| [in] | index_w | : index |
Definition at line 270 of file vpMeTracker.cpp.
References display(), vpMeSite::getState(), m_meList, vpMeSite::NO_SUPPRESSION, and vpMeSite::setWeight().
Display the moving edge sites with a color corresponding to their state.
| [in] | I | : The image. |
Definition at line 261 of file vpMeTracker.cpp.
References vpMeSite::display(), and m_meList.
|
inlineinherited |
Return object parameters expressed in the 3D camera frame.
Definition at line 95 of file vpTracker.h.
References cP.
|
inlineinherited |
Return object parameters expressed in the 2D image plane computed by perspective projection.
Definition at line 93 of file vpTracker.h.
References p.
|
inline |
Return the moving edges initialisation parameters.
Definition at line 153 of file vpMeTracker.h.
References m_me.
|
inline |
Return the list of moving edges
Definition at line 160 of file vpMeTracker.h.
References m_meList.
|
inline |
Return the list of moving edges
Definition at line 167 of file vpMeTracker.h.
References m_meList.
|
inline |
Return the number of points that has not been suppressed.
Definition at line 174 of file vpMeTracker.h.
References m_nGoodElement.
| BEGIN_VISP_NAMESPACE void vpMeTracker::init | ( | ) |
Initialize the tracker.
Definition at line 48 of file vpMeTracker.cpp.
References vpTracker::init(), m_selectDisplay, vpMeSite::NONE, and vpTracker::p.
Referenced by vpMeTracker(), and vpMeTracker().
| void vpMeTracker::initTracking | ( | const vpImage< unsigned char > & | I | ) |
Virtual function that is called by lower classes vpMeEllipse, vpMeLine and vpMeNurbs.
| vpTrackingException::initializationError | : Moving edges not initialized. |
Definition at line 180 of file vpMeTracker.cpp.
References vpMeSite::getState(), vpTrackingException::initializationError, m_me, m_meList, m_nGoodElement, vpMeSite::NO_SUPPRESSION, and vpMeSite::track().
Referenced by vpMeEllipse::initTracking(), vpMeLine::initTracking(), vpMeNurbs::initTracking(), vpMeLine::reSample(), vpMeNurbs::reSample(), and vpMeEllipse::sample().
|
inlinestatic |
| [in] | mask | : Mask corresponding to the region of interest in the image or nullptr if not wanted. Mask values that are set to true are considered in the tracking. To disable a pixel, set false. |
| [in] | i | : Pixel coordinate along the rows. |
| [in] | j | : Pixel coordinate along the columns. |
Definition at line 294 of file vpMeTracker.h.
References inRoiMask().
|
static |
Test whether the moving-edge (ME) is inside the mask of ME candidates for the initialization. Mask values that are set to true and their 8 neighbors are considered for the initialization.
| [in] | meMaskCandidates | : Mask corresponding the ME location in the image or nullptr if not wanted. Mask values that are set to true are considered for the initialization. To disable a pixel, set false. |
| [in] | i | : ME coordinate along the rows. |
| [in] | j | : ME coordinate along the columns. |
Definition at line 113 of file vpMeTracker.cpp.
References vpImage< Type >::getCols(), and vpImage< Type >::getRows().
Referenced by vpMeLine::plugHoles(), vpMeEllipse::sample(), vpMeLine::sample(), and vpMeLine::seekExtremities().
|
static |
Test whether the pixel is inside the region of interest mask. Mask values that are set to true are considered in the tracking.
| [in] | mask | : Mask corresponding to the region of interest in the image or nullptr if not wanted. Mask values that are set to true are considered in the tracking. To disable a pixel, set false. |
| [in] | i | : Pixel coordinate along the rows. |
| [in] | j | : Pixel coordinate along the columns. |
Definition at line 103 of file vpMeTracker.cpp.
References vpImage< Type >::getValue().
Referenced by vpMbtFaceDepthDense::computeDesiredFeatures(), vpMbtFaceDepthDense::computeDesiredFeatures(), vpMbtFaceDepthDense::computeDesiredFeatures(), vpMbtFaceDepthNormal::computeDesiredFeatures(), vpMbtFaceDepthNormal::computeDesiredFeatures(), vpMbtFaceDepthNormal::computeDesiredFeatures(), vpMbtDistanceKltPoints::computeNbDetectedCurrent(), vpMbtDistanceKltPoints::init(), inMask(), vpMeEllipse::plugHoles(), vpMeLine::plugHoles(), vpMeEllipse::sample(), vpMeLine::sample(), vpMeLine::seekExtremities(), and track().
| unsigned int vpMeTracker::numberOfSignal | ( | ) |
Return number of moving-edges that are tracked.
Definition at line 92 of file vpMeTracker.cpp.
References m_meList.
Referenced by vpMeLine::leastSquare(), vpMeEllipse::leastSquareRobust(), vpMeEllipse::leastSquareRobustCircle(), vpMeEllipse::leastSquareRobustEllipse(), vpMeNurbs::localReSample(), and vpMeNurbs::reSample().
| vpMeTracker & vpMeTracker::operator= | ( | vpMeTracker & | meTracker | ) |
Copy operator.
Definition at line 81 of file vpMeTracker.cpp.
References m_me, m_meList, m_nGoodElement, m_selectDisplay, and vpMeTracker().
| bool vpMeTracker::outOfImage | ( | const vpImagePoint & | iP, |
| int | border, | ||
| int | nrows, | ||
| int | ncols ) |
Check if a pixel i,j is out of the image.
| [in] | iP | : Pixel coordinates. |
| [in] | border | : Number of pixels along the image border to exclude. When border is set to 0, consider the complete image. |
| [in] | nrows | : Image number of rows. |
| [in] | ncols | : Image number of cols. |
Definition at line 172 of file vpMeTracker.cpp.
References vpImagePoint::get_i(), vpImagePoint::get_j(), and vpMath::round().
| bool vpMeTracker::outOfImage | ( | int | i, |
| int | j, | ||
| int | border, | ||
| int | nrows, | ||
| int | ncols ) |
Check if a pixel i,j is out of the image.
| [in] | i | : Pixel coordinate along the image rows. |
| [in] | j | : Pixel coordinates along the image columns. |
| [in] | border | : Number of pixels along the image border to exclude. When border is set to 0, consider the complete image. |
| [in] | nrows | : Image number of rows. |
| [in] | ncols | : Image number of cols. |
Definition at line 164 of file vpMeTracker.cpp.
Referenced by vpMeNurbs::localReSample(), vpMeEllipse::plugHoles(), vpMeLine::plugHoles(), vpMeEllipse::sample(), vpMeLine::sample(), vpMeNurbs::sample(), vpMeLine::seekExtremities(), and vpMeNurbs::seekExtremities().
| void vpMeTracker::reset | ( | ) |
Reset the tracker by removing all the moving edges.
Definition at line 73 of file vpMeTracker.cpp.
References m_meList, and m_nGoodElement.
Referenced by ~vpMeTracker().
|
pure virtual |
Sample pixels at a given interval.
Implemented in vpMeEllipse, vpMeLine, and vpMeNurbs.
|
inline |
Set type of moving-edges display.
| select | : Display type selector. |
Definition at line 234 of file vpMeTracker.h.
References m_selectDisplay.
|
inlinevirtual |
Set the mask.
| mask | : Mask. |
Definition at line 241 of file vpMeTracker.h.
References m_mask.
|
inlinevirtual |
Set the mask of candidates points for initialization.
| [in] | maskCandidates | : Pointer towards the mask of candidates points for initialization. |
Definition at line 248 of file vpMeTracker.h.
References m_maskCandidates.
|
inline |
Set the moving edges initialisation parameters.
| [in] | me | : Moving Edges. |
Definition at line 255 of file vpMeTracker.h.
References m_me.
|
inline |
Set the list of moving edges.
| [in] | meList | : List of Moving Edges. |
Definition at line 262 of file vpMeTracker.h.
References m_meList.
| unsigned int vpMeTracker::totalNumberOfSignal | ( | ) |
Return the total number of moving-edges.
Definition at line 101 of file vpMeTracker.cpp.
References m_meList.
| void vpMeTracker::track | ( | const vpImage< unsigned char > & | I | ) |
Track moving-edges.
| [in] | I | : Image. |
| vpTrackingException::initializationError | : Moving edges not initialized. |
Definition at line 213 of file vpMeTracker.cpp.
References vpTrackingException::initializationError, inRoiMask(), m_mask, m_me, m_meList, m_nGoodElement, vpMeSite::NO_SUPPRESSION, vpTrackingException::notEnoughPointError, and vpMeSite::OUTSIDE_ROI_MASK.
Referenced by vpMeLine::reSample(), vpMeEllipse::track(), vpMeLine::track(), and vpMeNurbs::track().
|
inherited |
Feature coordinates expressed in the camera frame cP.
Definition at line 73 of file vpTracker.h.
Referenced by vpCircle::changeFrame(), vpCylinder::changeFrame(), vpForwardProjection::changeFrame(), vpLine::changeFrame(), vpPoint::changeFrame(), vpSphere::changeFrame(), vpFeatureBuilder::create(), get_cP(), vpPoint::get_W(), vpPoint::get_X(), vpPoint::get_Y(), vpPoint::get_Z(), vpCircle::getA(), vpCylinder::getA(), vpCircle::getB(), vpCylinder::getB(), vpCircle::getC(), vpCylinder::getC(), vpCircle::getR(), vpCylinder::getR(), vpSphere::getR(), vpCircle::getX(), vpCylinder::getX(), vpSphere::getX(), vpCircle::getY(), vpCylinder::getY(), vpSphere::getY(), vpCircle::getZ(), vpCylinder::getZ(), vpSphere::getZ(), vpCircle::init(), vpCylinder::init(), vpLine::init(), vpPoint::init(), vpSphere::init(), vpCircle::operator=(), operator=(), vpForwardProjection::print(), vpPose::printPoint(), vpForwardProjection::project(), vpCircle::projection(), vpCylinder::projection(), vpForwardProjection::projection(), vpLine::projection(), vpLine::projection(), vpPoint::projection(), vpSphere::projection(), vpPoint::set_W(), vpPoint::set_X(), vpPoint::set_Y(), vpPoint::set_Z(), vpTracker(), and vpTracker().
|
inherited |
Flag used to indicate if the feature parameters cP expressed in the camera frame are available.
Definition at line 79 of file vpTracker.h.
Referenced by init(), operator=(), vpTracker(), and vpTracker().
|
protected |
Mask used to disable tracking on a part of image.
Definition at line 312 of file vpMeTracker.h.
Referenced by vpMeEllipse::plugHoles(), vpMeLine::plugHoles(), vpMeEllipse::sample(), vpMeLine::sample(), vpMeLine::seekExtremities(), setMask(), track(), vpMeTracker(), and vpMeTracker().
|
protected |
Mask used to determine candidate points for initialization in an image.
Definition at line 314 of file vpMeTracker.h.
Referenced by vpMeLine::plugHoles(), vpMeEllipse::sample(), vpMeLine::sample(), vpMeLine::seekExtremities(), setMaskCandidates(), vpMeTracker(), and vpMeTracker().
|
protected |
Moving edges initialisation parameters.
Definition at line 308 of file vpMeTracker.h.
Referenced by getMe(), initTracking(), vpMeEllipse::leastSquareRobust(), vpMeNurbs::localReSample(), operator=(), vpMeEllipse::plugHoles(), vpMeLine::plugHoles(), vpMeLine::reSample(), vpMeNurbs::reSample(), vpMeEllipse::sample(), vpMeLine::sample(), vpMeNurbs::sample(), vpMeLine::seekExtremities(), vpMeNurbs::seekExtremities(), vpMeNurbs::seekExtremitiesCanny(), setMe(), vpMeNurbs::supressNearPoints(), track(), vpMeTracker(), and vpMeTracker().
|
protected |
Tracking dependent variables/functions List of tracked moving edges points.
Definition at line 306 of file vpMeTracker.h.
Referenced by vpMeLine::computeRhoTheta(), vpMeLine::display(), vpMeLine::display(), display(), display(), display(), vpMeLine::getExtremities(), getMeList(), getMeList(), initTracking(), vpMeLine::leastSquare(), vpMeEllipse::leastSquareRobust(), vpMeEllipse::leastSquareRobustCircle(), vpMeEllipse::leastSquareRobustEllipse(), vpMeNurbs::localReSample(), numberOfSignal(), operator=(), vpMeEllipse::plugHoles(), vpMeLine::plugHoles(), vpMeLine::reSample(), reset(), vpMeEllipse::sample(), vpMeLine::sample(), vpMeNurbs::sample(), vpMeLine::seekExtremities(), vpMeNurbs::seekExtremities(), vpMeNurbs::seekExtremitiesCanny(), vpMeLine::setExtremities(), setMeList(), vpMeNurbs::suppressPoints(), vpMeNurbs::supressNearPoints(), totalNumberOfSignal(), vpMeNurbs::track(), track(), vpMeLine::updateDelta(), vpMeNurbs::updateDelta(), vpMeEllipse::updateTheta(), vpMeTracker(), vpMeTracker(), vpMeEllipse::~vpMeEllipse(), and vpMeLine::~vpMeLine().
|
protected |
Number of good moving-edges that are tracked.
Definition at line 310 of file vpMeTracker.h.
Referenced by getNbPoints(), initTracking(), operator=(), reset(), track(), vpMeTracker(), and vpMeTracker().
|
protected |
Moving-edges display type.
Definition at line 316 of file vpMeTracker.h.
Referenced by init(), vpMeNurbs::localReSample(), operator=(), vpMeEllipse::plugHoles(), vpMeLine::plugHoles(), vpMeEllipse::sample(), vpMeLine::sample(), vpMeNurbs::sample(), vpMeLine::seekExtremities(), vpMeNurbs::seekExtremities(), vpMeNurbs::seekExtremitiesCanny(), setDisplay(), vpMeTracker(), and vpMeTracker().
|
inherited |
Feature coordinates expressed in the image plane p. They correspond to 2D normalized coordinates expressed in meters.
Definition at line 69 of file vpTracker.h.
Referenced by vpCircle::computeIntersectionPoint(), vpMeterPixelConversion::convertEllipse(), vpMeterPixelConversion::convertEllipse(), vpMeterPixelConversion::convertEllipse(), vpMeterPixelConversion::convertEllipse(), vpCircle::display(), vpCircle::display(), vpCylinder::display(), vpCylinder::display(), vpLine::display(), vpLine::display(), vpPoint::display(), vpPoint::display(), vpSphere::display(), vpSphere::display(), vpFeatureDisplay::displayEllipse(), vpFeatureDisplay::displayEllipse(), vpPose::displayModel(), vpPose::displayModel(), vpImageDraw::drawFrame(), vpImageDraw::drawFrame(), vpCircle::get_mu02(), vpSphere::get_mu02(), vpCircle::get_mu11(), vpSphere::get_mu11(), vpCircle::get_mu20(), vpSphere::get_mu20(), vpCircle::get_n02(), vpSphere::get_n02(), vpCircle::get_n11(), vpSphere::get_n11(), vpCircle::get_n20(), vpSphere::get_n20(), get_p(), vpPoint::get_w(), vpCircle::get_x(), vpPoint::get_x(), vpSphere::get_x(), vpCircle::get_y(), vpPoint::get_y(), vpSphere::get_y(), vpLine::getRho(), vpCylinder::getRho1(), vpCylinder::getRho2(), vpLine::getTheta(), vpCylinder::getTheta1(), vpCylinder::getTheta2(), vpCircle::init(), vpCylinder::init(), vpLine::init(), vpMeTracker::init(), vpPoint::init(), vpSphere::init(), vpCircle::operator=(), operator=(), vpForwardProjection::print(), vpPose::printPoint(), vpForwardProjection::project(), vpCircle::projection(), vpCylinder::projection(), vpForwardProjection::projection(), vpLine::projection(), vpPoint::projection(), vpSphere::projection(), vpPoint::set_w(), vpPoint::set_x(), vpPoint::set_y(), vpLine::setRho(), vpLine::setTheta(), vpTracker(), and vpTracker().