Visual Servoing Platform  version 3.3.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 > &I)
 
void initTracking (const vpImage< unsigned char > &I)
 
void initTracking (const vpImage< unsigned char > &I, 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 ()
 
void init ()
 
unsigned int numberOfSignal ()
 
unsigned int totalNumberOfSignal ()
 
virtual void display (const vpImage< vpRGBa > &I)
 
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 ()
 
virtual void setMask (const vpImage< bool > &mask)
 
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 bool inMask (const vpImage< bool > *mask, unsigned int i, unsigned int j)
 

Public Attributes

std::list< vpMeSitelist
 
vpMeme
 
unsigned int init_range
 
int nGoodElement
 
const vpImage< bool > * m_mask
 
int query_range
 
bool display_point
 
vpColVector p
 
vpColVector cP
 
bool cPAvailable
 

Protected Attributes

vpMeSite::vpMeSiteDisplayType selectDisplay
 

Deprecated functions

vpColVector K
 
vpImagePoint iPc
 
double a
 
double b
 
double e
 
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
 
void initTracking (const vpImage< unsigned char > &I, unsigned int n, unsigned *i, unsigned *j)
 
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 (double threshold)
 
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)
 

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.

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.

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);
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 (const 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 105 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 81 of file vpMeEllipse.cpp.

◆ vpMeEllipse() [2/2]

vpMeEllipse::vpMeEllipse ( const vpMeEllipse meellipse)

Copy constructor.

Definition at line 100 of file vpMeEllipse.cpp.

◆ ~vpMeEllipse()

vpMeEllipse::~vpMeEllipse ( )
virtual

Basic destructor.

Definition at line 131 of file vpMeEllipse.cpp.

Member Function Documentation

◆ display() [1/6]

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

◆ display() [2/6]

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

◆ display() [3/6]

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

Referenced by initTracking().

◆ display() [4/6]

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

◆ display() [5/6]

void vpMeTracker::display ( const vpImage< vpRGBa > &  I)
virtualinherited

Definition at line 339 of file vpMeTracker.cpp.

References vpMeSite::display(), and vpMeTracker::list.

◆ display() [6/6]

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

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

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

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

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

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

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

◆ 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 199 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 192 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 206 of file vpMeEllipse.h.

◆ getA()

double vpMeEllipse::getA ( ) const
inline

Gets the semiminor axis of the ellipse.

Definition at line 216 of file vpMeEllipse.h.

◆ getB()

double vpMeEllipse::getB ( ) const
inline

Gets the semimajor axis of the ellipse.

Definition at line 221 of file vpMeEllipse.h.

◆ getCenter()

vpImagePoint vpMeEllipse::getCenter ( ) const
inline

Gets the center of the ellipse.

Definition at line 211 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 227 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 232 of file vpMeEllipse.h.

◆ getExpectedDensity()

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

Definition at line 115 of file vpMeEllipse.h.

◆ getHighestAngle()

double vpMeEllipse::getHighestAngle ( )
inline

Gets the highest $ alpha $ angle

Definition at line 247 of file vpMeEllipse.h.

◆ getInitRange()

unsigned int vpMeTracker::getInitRange ( )
inlineinherited

Return the initial range.

Returns
Value of init_range.

Definition at line 130 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 151 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 165 of file vpMeTracker.h.

◆ getMeList() [2/2]

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

Definition at line 166 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 173 of file vpMeTracker.h.

◆ getSmallestAngle()

double vpMeEllipse::getSmallestAngle ( )
inline

Gets the smallest $ alpha $ angle

Definition at line 242 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 652 of file vpMeEllipse.cpp.

◆ initTracking() [2/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 738 of file vpMeEllipse.cpp.

◆ initTracking() [3/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() [4/5]

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

◆ initTracking() [5/5]

void vpMeEllipse::initTracking ( const vpImage< unsigned char > &  I,
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 684 of file vpMeEllipse.cpp.

◆ inMask()

bool vpMeTracker::inMask ( const vpImage< bool > *  mask,
unsigned int  i,
unsigned int  j 
)
staticinherited

Test whether the pixel is inside the mask. Mask values that are set to true are considered in the tracking.

Parameters
maskMask image or NULL if not wanted. Mask values that are set to true are considered in the tracking. To disable a pixel, set false.
i: Pixel coordinate along the rows.
j: Pixel coordinate along the columns.

Definition at line 139 of file vpMeTracker.cpp.

Referenced by vpMbtFaceDepthDense::computeDesiredFeatures(), and vpMbtFaceDepthNormal::computeDesiredFeatures().

◆ numberOfSignal()

unsigned int vpMeTracker::numberOfSignal ( )
inherited

Definition at line 119 of file vpMeTracker.cpp.

References vpMeTracker::list.

◆ outOfImage() [1/2]

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

Definition at line 154 of file vpMeTracker.cpp.

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

◆ outOfImage() [2/2]

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

Definition at line 149 of file vpMeTracker.cpp.

◆ printParameters()

void vpMeEllipse::printParameters ( )

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

Definition at line 292 of file vpMeEllipse.cpp.

◆ reset()

void vpMeTracker::reset ( )
inherited

Reset the tracker by removing all the moving edges.

Definition at line 95 of file vpMeTracker.cpp.

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 123 of file vpMeTracker.h.

◆ setMask()

virtual void vpMeTracker::setMask ( const vpImage< bool > &  mask)
inlinevirtualinherited

Set the mask

Parameters
mask: Mask.

Definition at line 137 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 158 of file vpMeTracker.h.

◆ setThresholdRobust()

void vpMeEllipse::setThresholdRobust ( 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 258 of file vpMeEllipse.h.

◆ totalNumberOfSignal()

unsigned int vpMeTracker::totalNumberOfSignal ( )
inherited

Definition at line 128 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 813 of file vpMeEllipse.cpp.

Referenced by initTracking().

Member Data Documentation

◆ a

double vpMeEllipse::a

$ a $ is the semiminor axis of the ellipse.

Definition at line 281 of file vpMeEllipse.h.

Referenced by initTracking().

◆ alpha1

double vpMeEllipse::alpha1
protected

The smallest $ alpha $ angle.

Definition at line 298 of file vpMeEllipse.h.

Referenced by initTracking().

◆ alpha2

double vpMeEllipse::alpha2
protected

The highest $ alpha $ angle.

Definition at line 300 of file vpMeEllipse.h.

Referenced by initTracking().

◆ angle

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

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

Definition at line 306 of file vpMeEllipse.h.

◆ b

double vpMeEllipse::b

$ b $ is the semimajor axis of the ellipse.

Definition at line 283 of file vpMeEllipse.h.

Referenced by initTracking().

◆ ce

double vpMeEllipse::ce
protected

Value of cos(e).

Definition at line 302 of file vpMeEllipse.h.

Referenced by initTracking().

◆ cP

vpColVector vpTracker::cP
inherited

Feature coordinates expressed in the camera frame cP.

Definition at line 74 of file vpTracker.h.

Referenced by vpCircle::init(), vpSphere::init(), vpCylinder::init(), vpTracker::operator=(), and vpPose::printPoint().

◆ cPAvailable

bool vpTracker::cPAvailable
inherited

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

Definition at line 80 of file vpTracker.h.

Referenced by vpTracker::operator=().

◆ display_point

bool vpMeTracker::display_point
inherited

Definition at line 178 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 286 of file vpMeEllipse.h.

Referenced by initTracking().

◆ expecteddensity

double vpMeEllipse::expecteddensity
protected

Expected number of me to track along the ellipse.

Definition at line 318 of file vpMeEllipse.h.

◆ init_range

unsigned int vpMeTracker::init_range
inherited

Definition at line 76 of file vpMeTracker.h.

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

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

Referenced by initTracking().

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

Referenced by initTracking().

◆ iPc

vpImagePoint vpMeEllipse::iPc

The coordinates of the ellipse center.

Definition at line 279 of file vpMeEllipse.h.

Referenced by initTracking().

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

Referenced by initTracking().

◆ list

std::list<vpMeSite> vpMeTracker::list
inherited

Tracking dependent variables/functions List of tracked moving edges points.

Definition at line 73 of file vpMeTracker.h.

Referenced by vpMeTracker::display(), vpMeTracker::numberOfSignal(), vpMeTracker::operator=(), vpMeTracker::totalNumberOfSignal(), and vpMeTracker::vpMeTracker().

◆ m00

double vpMeEllipse::m00
protected

Surface.

Definition at line 308 of file vpMeEllipse.h.

◆ m01

double vpMeEllipse::m01
protected

Definition at line 312 of file vpMeEllipse.h.

◆ m02

double vpMeEllipse::m02
protected

Definition at line 314 of file vpMeEllipse.h.

◆ m10

double vpMeEllipse::m10
protected

First order raw moments.

Definition at line 312 of file vpMeEllipse.h.

◆ m11

double vpMeEllipse::m11
protected

Second order raw moments.

Definition at line 314 of file vpMeEllipse.h.

◆ m20

double vpMeEllipse::m20
protected

Definition at line 314 of file vpMeEllipse.h.

◆ m_mask

const vpImage<bool>* vpMeTracker::m_mask
inherited

Mask used to disable tracking on a part of image.

Definition at line 79 of file vpMeTracker.h.

◆ me

vpMe* vpMeTracker::me
inherited

Moving edges initialisation parameters.

Definition at line 75 of file vpMeTracker.h.

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

◆ mu02

double vpMeEllipse::mu02
protected

Definition at line 310 of file vpMeEllipse.h.

◆ mu11

double vpMeEllipse::mu11
protected

Second order central moments.

Definition at line 310 of file vpMeEllipse.h.

◆ mu20

double vpMeEllipse::mu20
protected

Definition at line 310 of file vpMeEllipse.h.

◆ nGoodElement

int vpMeTracker::nGoodElement
inherited

Definition at line 77 of file vpMeTracker.h.

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

◆ p

vpColVector vpTracker::p
inherited

Feature coordinates expressed in the image plane p. They correspond to 2D normalized coordinates expressed in meters.

Definition at line 70 of file vpTracker.h.

Referenced by vpCircle::display(), vpSphere::display(), vpProjectionDisplay::display(), vpProjectionDisplay::displayCamera(), vpCircle::init(), vpSphere::init(), vpMeTracker::init(), vpCylinder::init(), vpTracker::operator=(), and vpPose::printPoint().

◆ query_range

int vpMeTracker::query_range
inherited

Definition at line 177 of file vpMeTracker.h.

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

◆ se

double vpMeEllipse::se
protected

Value of sin(e).

Definition at line 304 of file vpMeEllipse.h.

Referenced by initTracking().

◆ selectDisplay

vpMeSite::vpMeSiteDisplayType vpMeTracker::selectDisplay
protectedinherited

◆ thresholdWeight

double vpMeEllipse::thresholdWeight
protected

Threshold for the robust least square.

Definition at line 316 of file vpMeEllipse.h.

vpDisplayX
Use the X11 console to display images on unix-like OS. Thus to enable this class X11 should be instal...
Definition: vpDisplayX.h:149
vpMeEllipse::e
double e
Definition: vpMeEllipse.h:286
vpImageConvert::convert
static void convert(const vpImage< unsigned char > &src, vpImage< vpRGBa > &dest)
Definition: vpImageConvert.cpp:78
vp1394CMUGrabber
Firewire cameras video capture based on CMU 1394 Digital Camera SDK.
Definition: vp1394CMUGrabber.h:150
vpMe::setThreshold
void setThreshold(const double &t)
Definition: vpMe.h:299
vpDisplayGDI
Display for windows using GDI (available on any windows 32 platform).
Definition: vpDisplayGDI.h:127
vpV4l2Grabber::acquire
void acquire(vpImage< unsigned char > &I)
Definition: vpV4l2Grabber.cpp:525
vpMe
Definition: vpMe.h:59
vpMe::setRange
void setRange(const unsigned int &r)
Definition: vpMe.h:270
vpDisplayOpenCV
The vpDisplayOpenCV allows to display image using the OpenCV library. Thus to enable this class OpenC...
Definition: vpDisplayOpenCV.h:140
vpMeEllipse
Class that tracks an ellipse moving edges.
Definition: vpMeEllipse.h:105
vpDisplay::display
static void display(const vpImage< unsigned char > &I)
Definition: vpDisplay_uchar.cpp:739
vpMeTracker::setDisplay
void setDisplay(vpMeSite::vpMeSiteDisplayType select)
Definition: vpMeTracker.h:104
vp1394TwoGrabber
Class for firewire ieee1394 video devices using libdc1394-2.x api.
Definition: vp1394TwoGrabber.h:183
vpMeEllipse::display
void display(const vpImage< unsigned char > &I, vpColor col)
Definition: vpMeEllipse.cpp:639
vpMeTracker::setMe
void setMe(vpMe *p_me)
Definition: vpMeTracker.h:144
vpV4l2Grabber
Class that is a wrapper over the Video4Linux2 (V4L2) driver.
Definition: vpV4l2Grabber.h:133
vpMe::setSampleStep
void setSampleStep(const double &s)
Definition: vpMe.h:277
vpDisplay::flush
static void flush(const vpImage< unsigned char > &I)
Definition: vpDisplay_uchar.cpp:715
vpImage< unsigned char >
vpException
error that can be emited by ViSP classes.
Definition: vpException.h:70
vpMeEllipse::initTracking
void initTracking(const vpImage< unsigned char > &I)
Definition: vpMeEllipse.cpp:652
vpMeTracker::me
vpMe * me
Moving edges initialisation parameters.
Definition: vpMeTracker.h:75
vpColor::red
static const vpColor red
Definition: vpColor.h:178
vpMeSite::RANGE_RESULT
Definition: vpMeSite.h:73
vpMeEllipse::track
void track(const vpImage< unsigned char > &I)
Definition: vpMeEllipse.cpp:813