Visual Servoing Platform  version 3.0.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 rows, int cols)
 
int outOfImage (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 95 of file vpMeEllipse.h.

Constructor & Destructor Documentation

vpMeEllipse::vpMeEllipse ( )

Basic constructor that calls the constructor of the class vpMeTracker.

Definition at line 80 of file vpMeEllipse.cpp.

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

vpMeEllipse::vpMeEllipse ( const vpMeEllipse meellipse)

Copy constructor.

Definition at line 101 of file vpMeEllipse.cpp.

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

vpMeEllipse::~vpMeEllipse ( )
virtual

Basic destructor.

Definition at line 139 of file vpMeEllipse.cpp.

References angle, and vpMeTracker::list.

Member Function Documentation

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 352 of file vpMeTracker.cpp.

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

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 694 of file vpMeEllipse.cpp.

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

Referenced by initTracking(), and track().

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 113 of file vpMeEllipse.h.

References vpMeTracker::display().

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 1106 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().

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 1185 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().

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 131 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

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 145 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

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 166 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

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 138 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

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 152 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

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 159 of file vpMeEllipse.h.

Referenced by vpFeatureBuilder::create().

double vpMeEllipse::get_mu02 ( ) const
inline

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

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

Definition at line 180 of file vpMeEllipse.h.

double vpMeEllipse::get_mu11 ( ) const
inline

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

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

Definition at line 173 of file vpMeEllipse.h.

double vpMeEllipse::get_mu20 ( ) const
inline

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

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

Definition at line 187 of file vpMeEllipse.h.

double vpMeEllipse::getA ( ) const
inline

Gets the semiminor axis of the ellipse.

Definition at line 197 of file vpMeEllipse.h.

double vpMeEllipse::getB ( ) const
inline

Gets the semimajor axis of the ellipse.

Definition at line 202 of file vpMeEllipse.h.

vpImagePoint vpMeEllipse::getCenter ( ) const
inline

Gets the center of the ellipse.

Definition at line 192 of file vpMeEllipse.h.

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 207 of file vpMeEllipse.h.

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

Gets the equation parameters of the ellipse

Definition at line 212 of file vpMeEllipse.h.

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

Definition at line 105 of file vpMeEllipse.h.

double vpMeEllipse::getHighestAngle ( )
inline

Gets the highest $ alpha $ angle

Definition at line 222 of file vpMeEllipse.h.

unsigned int vpMeTracker::getInitRange ( )
inlineinherited

Return the initial range.

Returns
Value of init_range.

Definition at line 128 of file vpMeTracker.h.

vpMe* vpMeTracker::getMe ( )
inlineinherited

Return the moving edges initialisation parameters

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

Definition at line 142 of file vpMeTracker.h.

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

Return the list of moving edges

Returns
List of Moving Edges.

Definition at line 156 of file vpMeTracker.h.

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

Definition at line 157 of file vpMeTracker.h.

int vpMeTracker::getNbPoints ( ) const
inlineinherited

Return the number of points that has not been suppressed.

Returns
Number of good points.

Definition at line 164 of file vpMeTracker.h.

double vpMeEllipse::getSmallestAngle ( )
inline

Gets the smallest $ alpha $ angle

Definition at line 217 of file vpMeEllipse.h.

void vpMeTracker::init ( void  )
inherited
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 709 of file vpMeEllipse.cpp.

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

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 743 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().

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 798 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().

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 
)
void vpMeEllipse::initTracking ( const vpImage< unsigned char > &  I,
const unsigned int  n,
unsigned *  i,
unsigned *  j 
)
unsigned int vpMeTracker::numberOfSignal ( )
inherited
int vpMeTracker::outOfImage ( int  i,
int  j,
int  half,
int  rows,
int  cols 
)
inherited
int vpMeTracker::outOfImage ( vpImagePoint  iP,
int  half,
int  rows,
int  cols 
)
inherited

Definition at line 149 of file vpMeTracker.cpp.

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

void vpMeEllipse::printParameters ( )

Print the parameters $ K = {K_0, ..., K_4} $ and the coordinates of the ellipse center.

Definition at line 312 of file vpMeEllipse.cpp.

References iPc.

void vpMeTracker::reset ( )
inherited

Reset the tracker by removing all the moving edges.

Definition at line 97 of file vpMeTracker.cpp.

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

Referenced by vpMeTracker::~vpMeTracker().

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

Set the initial range.

Parameters
r: initial range.

Definition at line 121 of file vpMeTracker.h.

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

Set the list of moving edges

Parameters
l: list of Moving Edges.

Definition at line 149 of file vpMeTracker.h.

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 233 of file vpMeEllipse.h.

unsigned int vpMeTracker::totalNumberOfSignal ( )
inherited

Definition at line 133 of file vpMeTracker.cpp.

References vpMeTracker::list.

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 876 of file vpMeEllipse.cpp.

References vpMeTracker::display(), display(), vpDisplay::flush(), vpColor::red, vpMeTracker::track(), and vpDEBUG_ENABLE.

Referenced by initTracking().

Member Data Documentation

double vpMeEllipse::a

$ a $ is the semiminor axis of the ellipse.

Definition at line 255 of file vpMeEllipse.h.

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

double vpMeEllipse::alpha1
protected

The smallest $ alpha $ angle.

Definition at line 267 of file vpMeEllipse.h.

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

double vpMeEllipse::alpha2
protected

The highest $ alpha $ angle.

Definition at line 269 of file vpMeEllipse.h.

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

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

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

Definition at line 275 of file vpMeEllipse.h.

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

double vpMeEllipse::b

$ b $ is the semimajor axis of the ellipse.

Definition at line 257 of file vpMeEllipse.h.

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

double vpMeEllipse::ce
protected

Value of cos(e).

Definition at line 271 of file vpMeEllipse.h.

Referenced by initTracking(), and vpMeEllipse().

bool vpTracker::cPAvailable
inherited

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

Definition at line 83 of file vpTracker.h.

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

bool vpMeTracker::display_point
inherited

Definition at line 169 of file vpMeTracker.h.

Referenced by vpMeTracker::vpMeTracker().

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 259 of file vpMeEllipse.h.

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

double vpMeEllipse::expecteddensity
protected

Expected number of me to track along the ellipse.

Definition at line 287 of file vpMeEllipse.h.

Referenced by initTracking(), and vpMeEllipse().

unsigned int vpMeTracker::init_range
inherited

Definition at line 76 of file vpMeTracker.h.

Referenced by vpMeTracker::initTracking(), and vpMeTracker::vpMeTracker().

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 263 of file vpMeEllipse.h.

Referenced by initTracking(), and vpMeEllipse().

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 265 of file vpMeEllipse.h.

Referenced by initTracking(), and vpMeEllipse().

vpImagePoint vpMeEllipse::iPc

The coordinates of the ellipse center.

Definition at line 253 of file vpMeEllipse.h.

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

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 251 of file vpMeEllipse.h.

Referenced by vpMeEllipse().

double vpMeEllipse::m00
protected

Surface.

Definition at line 277 of file vpMeEllipse.h.

Referenced by vpMeEllipse().

double vpMeEllipse::m01
protected

Definition at line 281 of file vpMeEllipse.h.

Referenced by vpMeEllipse().

double vpMeEllipse::m02
protected

Definition at line 283 of file vpMeEllipse.h.

Referenced by vpMeEllipse().

double vpMeEllipse::m10
protected

First order raw moments.

Definition at line 281 of file vpMeEllipse.h.

Referenced by vpMeEllipse().

double vpMeEllipse::m11
protected

Second order raw moments.

Definition at line 283 of file vpMeEllipse.h.

Referenced by vpMeEllipse().

double vpMeEllipse::m20
protected

Definition at line 283 of file vpMeEllipse.h.

Referenced by vpMeEllipse().

vpMe* vpMeTracker::me
inherited
double vpMeEllipse::mu02
protected

Definition at line 279 of file vpMeEllipse.h.

Referenced by vpMeEllipse().

double vpMeEllipse::mu11
protected

Second order central moments.

Definition at line 279 of file vpMeEllipse.h.

Referenced by vpMeEllipse().

double vpMeEllipse::mu20
protected

Definition at line 279 of file vpMeEllipse.h.

Referenced by vpMeEllipse().

int vpMeTracker::nGoodElement
inherited
int vpMeTracker::query_range
inherited

Definition at line 168 of file vpMeTracker.h.

Referenced by vpMeTracker::vpMeTracker().

double vpMeEllipse::se
protected

Value of sin(e).

Definition at line 273 of file vpMeEllipse.h.

Referenced by initTracking(), and vpMeEllipse().

double vpMeEllipse::thresholdWeight
protected

Threshold for the robust least square.

Definition at line 285 of file vpMeEllipse.h.

Referenced by vpMeEllipse().