Visual Servoing Platform  version 3.1.0

#include <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)
 
vpMe * getMe ()
 
void setMeList (const std::list< vpMeSite > &l)
 
std::list< vpMeSite > & getMeList ()
 
std::list< vpMeSite > getMeList () 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< vpMeSite > list
 
vpMe * me
 
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().