Visual Servoing Platform  version 3.1.0

#include <visp3/me/vpMeEllipse.h>

+ Inheritance diagram for vpMeEllipse:

Public Member Functions

 vpMeEllipse ()
 
 vpMeEllipse (const vpMeEllipse &meellipse)
 
virtual ~vpMeEllipse ()
 
int getExpectedDensity ()
 
void track (const vpImage< unsigned char > &Im)
 
void initTracking (const vpImage< unsigned char > &I)
 
void initTracking (const vpImage< unsigned char > &I, const unsigned int n, vpImagePoint *iP)
 
void initTracking (const vpImage< unsigned char > &I, const std::vector< vpImagePoint > &iP)
 
void initTracking (const vpImage< unsigned char > &I, const vpImagePoint &ic, double a_p, double b_p, double e_p, double low_alpha, double high_alpha)
 
void display (const vpImage< unsigned char > &I, vpColor col)
 
void display (const vpImage< unsigned char > &I)
 
void printParameters ()
 
double get_m00 () const
 
double get_m10 () const
 
double get_m01 () const
 
double get_m11 () const
 
double get_m20 () const
 
double get_m02 () const
 
double get_mu11 () const
 
double get_mu02 () const
 
double get_mu20 () const
 
vpImagePoint getCenter () const
 
double getA () const
 
double getB () const
 
double getE () const
 
void getEquationParam (double &A, double &B, double &E)
 
double getSmallestAngle ()
 
double getHighestAngle ()
 
void setThresholdRobust (const double threshold)
 
void init ()
 
unsigned int numberOfSignal ()
 
unsigned int totalNumberOfSignal ()
 
void display (const vpImage< unsigned char > &I, vpColVector &w, unsigned int &index_w)
 
void setDisplay (vpMeSite::vpMeSiteDisplayType select)
 
int outOfImage (int i, int j, int half, int row, int cols)
 
int outOfImage (const vpImagePoint &iP, int half, int rows, int cols)
 
void reset ()
 
void setInitRange (const unsigned int &r)
 
unsigned int getInitRange ()
 
void setMe (vpMe *p_me)
 
vpMegetMe ()
 
void setMeList (const std::list< vpMeSite > &l)
 
std::list< vpMeSite > & getMeList ()
 
std::list< vpMeSitegetMeList () const
 
int getNbPoints () const
 

Static Public Member Functions

static void display (const vpImage< unsigned char > &I, const vpImagePoint &center, const double &A, const double &B, const double &E, const double &smallalpha, const double &highalpha, const vpColor &color=vpColor::green, unsigned int thickness=1)
 
static void display (const vpImage< vpRGBa > &I, const vpImagePoint &center, const double &A, const double &B, const double &E, const double &smallalpha, const double &highalpha, const vpColor &color=vpColor::green, unsigned int thickness=1)
 

Public Attributes

vpColVector K
 
vpImagePoint iPc
 
double a
 
double b
 
double e
 
std::list< vpMeSitelist
 
vpMeme
 
unsigned int init_range
 
int nGoodElement
 
int query_range
 
bool display_point
 
vpColVector p
 
vpColVector cP
 
bool cPAvailable
 

Protected Attributes

vpImagePoint iP1
 
vpImagePoint iP2
 
double alpha1
 
double alpha2
 
double ce
 
double se
 
std::list< double > angle
 
double m00
 
double mu11
 
double mu20
 
double mu02
 
double m10
 
double m01
 
double m11
 
double m02
 
double m20
 
double thresholdWeight
 
double expecteddensity
 
vpMeSite::vpMeSiteDisplayType selectDisplay
 

Deprecated functions

void initTracking (const vpImage< unsigned char > &I, const unsigned int n, unsigned *i, unsigned *j)
 

Detailed Description

Class that tracks an ellipse moving edges.

In this class, an ellipse is defined as the set of points $ (i,j) $ of the image frame (For more information about the image frame see the vpImagePoint documentation) that satisfy the implicit equation :

\[ i^2 + K_0j^2 + 2K_1ij + 2K_2i + 2K_3j + K4 = 0 \]

If $ K_0 $ is equal to 1 and $ K_1 $ is equal to 0 the the set of points $ (i,j) $ represents a circle.

The five parameters are stored in the public attribute K.

An ellipse is also defined thanks to three other parameter which are $ a $, $ b $ and $ e $. $ a $ represents the semiminor axis and $ b $ is the semimajor axis. Here $ e $ is the angle made by the major axis and the i axis of the image frame $ (i,j) $. The following figure shows better meaning of those parameters.

vpMeEllipse.gif

It is possible to compute the coordinates $ (i,j) $ of a point which belongs to the ellipse thanks to the following equations :

\[ i = i_c + b cos(e) cos(\alpha) - a sin(e) sin(\alpha) \]

\[ j = j_c + b sin(e) cos(\alpha) + a cos(e) sin(\alpha) \]

Here the coordinates $ (i_c,j_c) $ are the coordinates of the ellipse center in the image frame and $ \alpha $ is an angle beetween $ [0,2\pi] $ and which enables to describe all the points of the ellipse.

vpMeEllipse2.gif

The example below available in tutorial-me-ellipse-tracker.cpp and described in Tutorial: Moving-edges tracking, section Ellipse tracking shows how to use this class.

#include <visp3/core/vpConfig.h>
#ifdef VISP_HAVE_MODULE_SENSOR
#include <visp3/sensor/vp1394CMUGrabber.h>
#include <visp3/sensor/vp1394TwoGrabber.h>
#include <visp3/sensor/vpV4l2Grabber.h>
#endif
#include <visp3/gui/vpDisplayGDI.h>
#include <visp3/gui/vpDisplayOpenCV.h>
#include <visp3/gui/vpDisplayX.h>
#include <visp3/me/vpMeEllipse.h>
int main()
{
#if (defined(VISP_HAVE_DC1394) || defined(VISP_HAVE_CMU1394) || defined(VISP_HAVE_V4L2) || \
(VISP_HAVE_OPENCV_VERSION >= 0x020100))
try {
#if defined(VISP_HAVE_DC1394)
vp1394TwoGrabber g(false);
#elif defined(VISP_HAVE_CMU1394)
#elif defined(VISP_HAVE_V4L2)
#elif defined(VISP_HAVE_OPENCV)
cv::VideoCapture g(0); // open the default camera
if (!g.isOpened()) { // check if we succeeded
std::cout << "Failed to open the camera" << std::endl;
return -1;
}
cv::Mat frame;
#endif
#if defined(VISP_HAVE_DC1394) || defined(VISP_HAVE_V4L2) || defined(VISP_HAVE_CMU1394)
g.acquire(I);
#elif defined(VISP_HAVE_OPENCV)
g >> frame; // get a new frame from camera
#endif
#if defined(VISP_HAVE_X11)
vpDisplayX d(I, 0, 0, "Camera view");
#elif defined(VISP_HAVE_GDI)
vpDisplayGDI d(I, 0, 0, "Camera view");
#elif defined(VISP_HAVE_OPENCV)
vpDisplayOpenCV d(I, 0, 0, "Camera view");
#else
std::cout << "No image viewer is available..." << std::endl;
#endif
me.setRange(25);
me.setThreshold(15000);
me.setSampleStep(10);
vpMeEllipse ellipse;
ellipse.setMe(&me);
ellipse.initTracking(I);
while (1) {
#if defined(VISP_HAVE_DC1394) || defined(VISP_HAVE_V4L2) || defined(VISP_HAVE_CMU1394)
g.acquire(I);
#elif defined(VISP_HAVE_OPENCV)
g >> frame;
#endif
ellipse.track(I);
ellipse.display(I, vpColor::red);
}
} catch (vpException &e) {
std::cout << "Catch an exception: " << e << std::endl;
}
#endif
}
Examples:
trackMeCircle.cpp, trackMeEllipse.cpp, and tutorial-me-ellipse-tracker.cpp.

Definition at line 106 of file vpMeEllipse.h.

Constructor & Destructor Documentation

◆ vpMeEllipse() [1/2]

vpMeEllipse::vpMeEllipse ( )

Basic constructor that calls the constructor of the class vpMeTracker.

Definition at line 82 of file vpMeEllipse.cpp.

References iP1, iP2, vpImagePoint::set_i(), and vpImagePoint::set_j().

◆ vpMeEllipse() [2/2]

vpMeEllipse::vpMeEllipse ( const vpMeEllipse meellipse)

Copy constructor.

Definition at line 101 of file vpMeEllipse.cpp.

References a, alpha1, alpha2, b, ce, e, expecteddensity, m00, m01, m02, m10, m11, m20, mu02, mu11, mu20, se, and thresholdWeight.

◆ ~vpMeEllipse()

Member Function Documentation

◆ display() [1/5]

void vpMeTracker::display ( const vpImage< unsigned char > &  I,
vpColVector w,
unsigned int &  index_w 
)
inherited

Displays the status of moving edge sites

Parameters
I: The image.
w: vector
index_w: index

Definition at line 321 of file vpMeTracker.cpp.

References vpMeTracker::display(), vpMeSite::getState(), vpMeTracker::list, vpMeSite::NO_SUPPRESSION, and vpMeSite::weight.

◆ display() [2/5]

void vpMeEllipse::display ( const vpImage< unsigned char > &  I,
vpColor  col 
)
virtual

Display the ellipse.

Warning
To effectively display the ellipse a call to vpDisplay::flush() is needed.
Parameters
I: Image in which the ellipse appears.
col: Color of the displayed ellipse.

Implements vpMeTracker.

Examples:
trackMeCircle.cpp, trackMeEllipse.cpp, and tutorial-me-ellipse-tracker.cpp.

Definition at line 638 of file vpMeEllipse.cpp.

References a, alpha1, alpha2, b, e, and iPc.

Referenced by initTracking(), and track().

◆ display() [3/5]

void vpMeEllipse::display ( const vpImage< unsigned char > &  I)
inlinevirtual

Display the moving edge sites with a color corresponding to their state.

  • If green : The vpMeSite is a good point.
  • If blue : The point is removed because of the vpMeSite tracking phase (constrast problem).
  • If purple : The point is removed because of the vpMeSite tracking phase (threshold problem).
  • If red : The point is removed because of the robust method in the virtual visual servoing (M-Estimator problem).
  • If cyan : The point is removed because it's too close to another.
  • Yellow otherwise
Parameters
I: The image.

Reimplemented from vpMeTracker.

Definition at line 125 of file vpMeEllipse.h.

References vpMeTracker::display(), and vpMeTracker::initTracking().

◆ display() [4/5]

void vpMeEllipse::display ( const vpImage< unsigned char > &  I,
const vpImagePoint center,
const double &  A,
const double &  B,
const double &  E,
const double &  smallalpha,
const double &  highalpha,
const vpColor color = vpColor::green,
unsigned int  thickness = 1 
)
static

Display of the ellipse thanks to the equation parameters.

Parameters
I: The image used as background.
center: Center of the ellipse
A: Semiminor axis of the ellipse.
B: Semimajor axis of the ellipse.
E: Angle made by the major axis and the i axis of the image frame $ (i,j) $
smallalpha: Smallest $ alpha $ angle in rad.
highalpha: Highest $ alpha $ angle in rad.
color: Color used to display th lines.
thickness: Thickness of the drawings.

Definition at line 994 of file vpMeEllipse.cpp.

References vpColor::blue, vpDisplay::displayCross(), vpDisplay::displayLine(), vpImagePoint::get_i(), vpImagePoint::get_j(), vpMath::rad(), vpColor::red, vpImagePoint::set_i(), and vpImagePoint::set_j().

◆ display() [5/5]

void vpMeEllipse::display ( const vpImage< vpRGBa > &  I,
const vpImagePoint center,
const double &  A,
const double &  B,
const double &  E,
const double &  smallalpha,
const double &  highalpha,
const vpColor color = vpColor::green,
unsigned int  thickness = 1 
)
static

Display of the ellipse thanks to the equation parameters.

Parameters
I: The image used as background.
center: Center of the ellipse
A: Semiminor axis of the ellipse.
B: Semimajor axis of the ellipse.
E: Angle made by the major axis and the i axis of the image frame $ (i,j) $
smallalpha: Smallest $ alpha $ angle in rad.
highalpha: Highest $ alpha $ angle in rad.
color: Color used to display th lines.
thickness: Thickness of the drawings.

Definition at line 1072 of file vpMeEllipse.cpp.

References vpColor::blue, vpDisplay::displayCross(), vpDisplay::displayLine(), vpImagePoint::get_i(), vpImagePoint::get_j(), vpMath::rad(), vpColor::red, vpImagePoint::set_i(), and vpImagePoint::set_j().

◆ get_m00()

double vpMeEllipse::get_m00 ( ) const
inline

Gets the 0 order moment $ m_{00} $ which represents the area of the ellipse.

Returns
the value of $ m_{00} $.

Definition at line 146 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

◆ get_m01()

double vpMeEllipse::get_m01 ( ) const
inline

Gets the 1 order raw moment $ m_{01} $ with $ m_{nm} = \sum_{i,j}i^n j^m $.

Returns
the value of $ m_{01} $.

Definition at line 162 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

◆ get_m02()

double vpMeEllipse::get_m02 ( ) const
inline

Gets the 2 order raw moment $ m_{02} $ with $ m_{nm} = \sum_{i,j}i^n j^m $.

Returns
the value of $ m_{11} $.

Definition at line 186 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

◆ get_m10()

double vpMeEllipse::get_m10 ( ) const
inline

Gets the 1 order raw moment $ m_{10} $ with $ m_{nm} = \sum_{i,j}i^n j^m $.

Returns
the value of $ m_{10} $.

Definition at line 154 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

◆ get_m11()

double vpMeEllipse::get_m11 ( ) const
inline

Gets the 2 order raw moment $ m_{11} $ with $ m_{nm} = \sum_{i,j}i^n j^m $.

Returns
the value of $ m_{11} $.

Definition at line 170 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

◆ get_m20()

double vpMeEllipse::get_m20 ( ) const
inline

Gets the 2 order raw moment $ m_{20} $ with $ m_{nm} = \sum_{i,j}i^n j^m $.

Returns
the value of $ m_{11} $.

Definition at line 178 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

◆ get_mu02()

double vpMeEllipse::get_mu02 ( ) const
inline

Gets the 2 order central moment $ \mu_{02} $.

Returns
the value of $ \mu_{02} $.

Definition at line 200 of file vpMeEllipse.h.

◆ get_mu11()

double vpMeEllipse::get_mu11 ( ) const
inline

Gets the 2 order central moment $ \mu_{11} $.

Returns
the value of $ \mu_{11} $.

Definition at line 193 of file vpMeEllipse.h.

◆ get_mu20()

double vpMeEllipse::get_mu20 ( ) const
inline

Gets the 2 order central moment $ \mu_{20} $.

Returns
the value of $ \mu_{20} $.

Definition at line 207 of file vpMeEllipse.h.

◆ getA()

double vpMeEllipse::getA ( ) const
inline

Gets the semiminor axis of the ellipse.

Definition at line 217 of file vpMeEllipse.h.

◆ getB()

double vpMeEllipse::getB ( ) const
inline

Gets the semimajor axis of the ellipse.

Definition at line 222 of file vpMeEllipse.h.

◆ getCenter()

vpImagePoint vpMeEllipse::getCenter ( ) const
inline

Gets the center of the ellipse.

Definition at line 212 of file vpMeEllipse.h.

◆ getE()

double vpMeEllipse::getE ( ) const
inline

Gets the angle made by the major axis and the i axis of the image frame $ (i,j) $

Definition at line 228 of file vpMeEllipse.h.

◆ getEquationParam()

void vpMeEllipse::getEquationParam ( double &  A,
double &  B,
double &  E 
)
inline

Gets the equation parameters of the ellipse

Definition at line 233 of file vpMeEllipse.h.

◆ getExpectedDensity()

int vpMeEllipse::getExpectedDensity ( )
inline
Returns
Expected number of moving edges to track along the ellipse.

Definition at line 116 of file vpMeEllipse.h.

References vpMeTracker::display(), vpMeTracker::initTracking(), and vpMeTracker::track().

◆ getHighestAngle()

double vpMeEllipse::getHighestAngle ( )
inline

Gets the highest $ alpha $ angle

Definition at line 248 of file vpMeEllipse.h.

◆ getInitRange()

unsigned int vpMeTracker::getInitRange ( )
inlineinherited

Return the initial range.

Returns
Value of init_range.

Definition at line 126 of file vpMeTracker.h.

◆ getMe()

vpMe* vpMeTracker::getMe ( )
inlineinherited

Return the moving edges initialisation parameters

Returns
Moving Edges.
Examples:
trackMeCircle.cpp, and trackMeEllipse.cpp.

Definition at line 140 of file vpMeTracker.h.

◆ getMeList() [1/2]

std::list<vpMeSite>& vpMeTracker::getMeList ( )
inlineinherited

Return the list of moving edges

Returns
List of Moving Edges.

Definition at line 154 of file vpMeTracker.h.

◆ getMeList() [2/2]

std::list<vpMeSite> vpMeTracker::getMeList ( ) const
inlineinherited

Definition at line 155 of file vpMeTracker.h.

◆ getNbPoints()

int vpMeTracker::getNbPoints ( ) const
inlineinherited

Return the number of points that has not been suppressed.

Returns
Number of good points.

Definition at line 162 of file vpMeTracker.h.

◆ getSmallestAngle()

double vpMeEllipse::getSmallestAngle ( )
inline

Gets the smallest $ alpha $ angle

Definition at line 243 of file vpMeEllipse.h.

◆ init()

void vpMeTracker::init ( void  )
inherited

◆ initTracking() [1/5]

void vpMeEllipse::initTracking ( const vpImage< unsigned char > &  I)

Initilization of the tracking. Ask the user to click counter clockwise on five points located on the ellipse edge to track.

Warning
The points should be selected counter clockwise.
Parameters
I: Image in which the ellipse appears.
Examples:
trackMeCircle.cpp, trackMeEllipse.cpp, and tutorial-me-ellipse-tracker.cpp.

Definition at line 651 of file vpMeEllipse.cpp.

References vpDisplay::displayCross(), vpDisplay::flush(), vpDisplay::getClick(), iP1, iP2, and vpColor::red.

◆ initTracking() [2/5]

void vpMeEllipse::initTracking ( const vpImage< unsigned char > &  I,
const unsigned int  n,
vpImagePoint iP 
)

Initialization of the tracking. The ellipse is defined thanks to the coordinates of n points.

Warning
It is better to use at least five points to well estimate the ellipse parameters.
The n points should be selected counter clockwise.
Parameters
I: Image in which the ellipse appears.
n: The number of points in the list.
iP: A pointer to a list of points belonging to the ellipse edge.

Definition at line 683 of file vpMeEllipse.cpp.

References alpha1, alpha2, vpMeTracker::display(), display(), e, expecteddensity, vpDisplay::flush(), vpImagePoint::get_i(), vpImagePoint::get_j(), vpMe::getSampleStep(), vpColor::green, vpMeTracker::initTracking(), iP1, iP2, vpMeTracker::me, vpMatrix::pseudoInverse(), vpMath::rad(), vpMath::sqr(), and track().

◆ initTracking() [3/5]

void vpMeEllipse::initTracking ( const vpImage< unsigned char > &  I,
const std::vector< vpImagePoint > &  iP 
)

Initialization of the tracking. The ellipse is defined thanks to a vector of n points.

Warning
It is better to use at least five points to well estimate the ellipse parameters.
The n points should be selected counter clockwise.
Parameters
I: Image in which the ellipse appears.
iP: A vector of points belonging to the ellipse edge used to initialize the tracking.

Definition at line 737 of file vpMeEllipse.cpp.

References alpha1, alpha2, vpMeTracker::display(), display(), e, expecteddensity, vpDisplay::flush(), vpMe::getSampleStep(), vpColor::green, vpMeTracker::initTracking(), iP1, iP2, vpMeTracker::me, vpMatrix::pseudoInverse(), vpMath::rad(), vpMath::sqr(), and track().

◆ initTracking() [4/5]

void vpMeEllipse::initTracking ( const vpImage< unsigned char > &  I,
const vpImagePoint ic,
double  a_p,
double  b_p,
double  e_p,
double  low_alpha,
double  high_alpha 
)

◆ initTracking() [5/5]

void vpMeEllipse::initTracking ( const vpImage< unsigned char > &  I,
const unsigned int  n,
unsigned *  i,
unsigned *  j 
)

◆ numberOfSignal()

unsigned int vpMeTracker::numberOfSignal ( )
inherited

◆ outOfImage() [1/2]

int vpMeTracker::outOfImage ( int  i,
int  j,
int  half,
int  row,
int  cols 
)
inherited

◆ outOfImage() [2/2]

int vpMeTracker::outOfImage ( const vpImagePoint iP,
int  half,
int  rows,
int  cols 
)
inherited

Definition at line 136 of file vpMeTracker.cpp.

References vpImagePoint::get_i(), vpImagePoint::get_j(), and vpMath::round().

◆ printParameters()

◆ reset()

void vpMeTracker::reset ( )
inherited

Reset the tracker by removing all the moving edges.

Definition at line 96 of file vpMeTracker.cpp.

References vpMeTracker::list, and vpMeTracker::nGoodElement.

Referenced by vpMeTracker::~vpMeTracker().

◆ setDisplay()

◆ setInitRange()

void vpMeTracker::setInitRange ( const unsigned int &  r)
inlineinherited

Set the initial range.

Parameters
r: initial range.

Definition at line 119 of file vpMeTracker.h.

◆ setMe()

◆ setMeList()

void vpMeTracker::setMeList ( const std::list< vpMeSite > &  l)
inlineinherited

Set the list of moving edges

Parameters
l: list of Moving Edges.

Definition at line 147 of file vpMeTracker.h.

◆ setThresholdRobust()

void vpMeEllipse::setThresholdRobust ( const double  threshold)
inline

Set the new threshold for the robust estimation of the parameters of the ellipse equation. If the weight of a point is below this threshold, this one is removed from the list of tracked meSite. Value must be between 0 (never rejected) and 1 (always rejected).

Parameters
threshold: The new value of the threshold.

Definition at line 259 of file vpMeEllipse.h.

◆ totalNumberOfSignal()

unsigned int vpMeTracker::totalNumberOfSignal ( )
inherited

Definition at line 129 of file vpMeTracker.cpp.

References vpMeTracker::list.

◆ track()

void vpMeEllipse::track ( const vpImage< unsigned char > &  I)

Track the ellipse in the image I.

Parameters
I: Image in which the ellipse appears.
Examples:
trackMeCircle.cpp, trackMeEllipse.cpp, and tutorial-me-ellipse-tracker.cpp.

Definition at line 812 of file vpMeEllipse.cpp.

References a, alpha1, alpha2, b, ce, vpMeTracker::display(), display(), e, vpDisplay::flush(), vpImagePoint::get_i(), vpImagePoint::get_j(), iPc, m00, m01, m02, m10, m11, m20, mu02, mu11, mu20, vpColor::red, se, vpMath::sqr(), vpMeTracker::track(), vpCDEBUG, and vpDEBUG_ENABLE.

Referenced by initTracking().

Member Data Documentation

◆ a

double vpMeEllipse::a

$ a $ is the semiminor axis of the ellipse.

Definition at line 282 of file vpMeEllipse.h.

Referenced by display(), initTracking(), printParameters(), track(), vpMeEllipse(), and ~vpMeEllipse().

◆ alpha1

double vpMeEllipse::alpha1
protected

The smallest $ alpha $ angle.

Definition at line 299 of file vpMeEllipse.h.

Referenced by display(), initTracking(), printParameters(), track(), vpMeEllipse(), and ~vpMeEllipse().

◆ alpha2

double vpMeEllipse::alpha2
protected

The highest $ alpha $ angle.

Definition at line 301 of file vpMeEllipse.h.

Referenced by display(), initTracking(), printParameters(), track(), vpMeEllipse(), and ~vpMeEllipse().

◆ angle

std::list<double> vpMeEllipse::angle
protected

Stores the value of the $ alpha $ angle for each vpMeSite.

Definition at line 307 of file vpMeEllipse.h.

Referenced by printParameters(), and ~vpMeEllipse().

◆ b

double vpMeEllipse::b

$ b $ is the semimajor axis of the ellipse.

Definition at line 284 of file vpMeEllipse.h.

Referenced by display(), initTracking(), printParameters(), track(), vpMeEllipse(), and ~vpMeEllipse().

◆ ce

double vpMeEllipse::ce
protected

Value of cos(e).

Definition at line 303 of file vpMeEllipse.h.

Referenced by initTracking(), printParameters(), track(), vpMeEllipse(), and ~vpMeEllipse().

◆ cP

◆ cPAvailable

bool vpTracker::cPAvailable
inherited

Flag used to indicate if the feature parameters cP expressed in the camera frame are available.

Definition at line 81 of file vpTracker.h.

Referenced by vpTracker::init(), vpTracker::operator=(), and vpPoint::operator=().

◆ display_point

bool vpMeTracker::display_point
inherited

Definition at line 167 of file vpMeTracker.h.

Referenced by vpMeTracker::operator=(), and vpMeTracker::vpMeTracker().

◆ e

double vpMeEllipse::e

$ e $ is the angle made by the major axis and the i axis of the image frame $ (i,j) $.

Definition at line 287 of file vpMeEllipse.h.

Referenced by display(), initTracking(), printParameters(), track(), vpMeEllipse(), and ~vpMeEllipse().

◆ expecteddensity

double vpMeEllipse::expecteddensity
protected

Expected number of me to track along the ellipse.

Definition at line 319 of file vpMeEllipse.h.

Referenced by initTracking(), vpMeEllipse(), and ~vpMeEllipse().

◆ init_range

unsigned int vpMeTracker::init_range
inherited

◆ iP1

vpImagePoint vpMeEllipse::iP1
protected

The coordinates of the point corresponding to the smallest $ alpha $ angle. More things about the $ alpha $ are given at the beginning of the class description.

Definition at line 293 of file vpMeEllipse.h.

Referenced by initTracking(), printParameters(), and vpMeEllipse().

◆ iP2

vpImagePoint vpMeEllipse::iP2
protected

The coordinates of the point corresponding to the highest $ alpha $ angle. More things about the $ alpha $ are given at the beginning of the class description.

Definition at line 297 of file vpMeEllipse.h.

Referenced by initTracking(), printParameters(), and vpMeEllipse().

◆ iPc

vpImagePoint vpMeEllipse::iPc

The coordinates of the ellipse center.

Definition at line 280 of file vpMeEllipse.h.

Referenced by display(), initTracking(), printParameters(), track(), and ~vpMeEllipse().

◆ K

vpColVector vpMeEllipse::K

Parameters of the ellipse to define the set of points that satisfy the implicit equation :

\[ i^2 + K_0j^2 + 2K_1ij + 2K_2i + 2K_3j + K4 = 0 \]

Definition at line 278 of file vpMeEllipse.h.

◆ list

◆ m00

double vpMeEllipse::m00
protected

Surface.

Definition at line 309 of file vpMeEllipse.h.

Referenced by track(), and vpMeEllipse().

◆ m01

double vpMeEllipse::m01
protected

Definition at line 313 of file vpMeEllipse.h.

Referenced by track(), and vpMeEllipse().

◆ m02

double vpMeEllipse::m02
protected

Definition at line 315 of file vpMeEllipse.h.

Referenced by track(), and vpMeEllipse().

◆ m10

double vpMeEllipse::m10
protected

First order raw moments.

Definition at line 313 of file vpMeEllipse.h.

Referenced by track(), and vpMeEllipse().

◆ m11

double vpMeEllipse::m11
protected

Second order raw moments.

Definition at line 315 of file vpMeEllipse.h.

Referenced by track(), and vpMeEllipse().

◆ m20

double vpMeEllipse::m20
protected

Definition at line 315 of file vpMeEllipse.h.

Referenced by track(), and vpMeEllipse().

◆ me

◆ mu02

double vpMeEllipse::mu02
protected

Definition at line 311 of file vpMeEllipse.h.

Referenced by track(), and vpMeEllipse().

◆ mu11

double vpMeEllipse::mu11
protected

Second order central moments.

Definition at line 311 of file vpMeEllipse.h.

Referenced by track(), and vpMeEllipse().

◆ mu20

double vpMeEllipse::mu20
protected

Definition at line 311 of file vpMeEllipse.h.

Referenced by track(), and vpMeEllipse().

◆ nGoodElement

int vpMeTracker::nGoodElement
inherited

◆ p

◆ query_range

int vpMeTracker::query_range
inherited

Definition at line 166 of file vpMeTracker.h.

Referenced by vpMeTracker::operator=(), and vpMeTracker::vpMeTracker().

◆ se

double vpMeEllipse::se
protected

Value of sin(e).

Definition at line 305 of file vpMeEllipse.h.

Referenced by initTracking(), printParameters(), track(), vpMeEllipse(), and ~vpMeEllipse().

◆ selectDisplay

◆ thresholdWeight

double vpMeEllipse::thresholdWeight
protected

Threshold for the robust least square.

Definition at line 317 of file vpMeEllipse.h.

Referenced by printParameters(), and vpMeEllipse().