Visual Servoing Platform  version 3.5.0 under development (2022-02-15)
vpFeatureSegment Class Reference

#include <visp3/visual_features/vpFeatureSegment.h>

+ Inheritance diagram for vpFeatureSegment:

Public Types

enum  { FEATURE_ALL = 0xffff }
 
enum  vpBasicFeatureDeallocatorType { user, vpServo }
 

Public Member Functions

 vpFeatureSegment (bool normalized=false)
 
virtual ~vpFeatureSegment ()
 
void buildFrom (double x1, double y1, double Z1, double x2, double y2, double Z2)
 
void display (const vpCameraParameters &cam, const vpImage< unsigned char > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const
 
void display (const vpCameraParameters &cam, const vpImage< vpRGBa > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const
 
vpFeatureSegmentduplicate () const
 
vpColVector error (const vpBasicFeature &s_star, unsigned int select=FEATURE_ALL)
 
double getXc () const
 
double getYc () const
 
double getL () const
 
double getAlpha () const
 
double getZ1 () const
 
double getZ2 () const
 
void init ()
 
vpMatrix interaction (unsigned int select=FEATURE_ALL)
 
void print (unsigned int select=FEATURE_ALL) const
 
bool isNormalized ()
 
void setNormalized (bool normalized)
 
void setXc (double val)
 
void setYc (double val)
 
void setL (double val)
 
void setAlpha (double val)
 
void setZ1 (double val)
 
void setZ2 (double val)
 
Inherited functionalities from vpBasicFeature
unsigned int dimension_s ()
 
vpColVector get_s (unsigned int select=FEATURE_ALL) const
 
vpBasicFeatureDeallocatorType getDeallocate ()
 
unsigned int getDimension (unsigned int select=FEATURE_ALL) const
 
virtual double operator[] (unsigned int i) const
 
void setDeallocate (vpBasicFeatureDeallocatorType d)
 
void setFlags ()
 

Static Public Member Functions

static unsigned int selectXc ()
 
static unsigned int selectYc ()
 
static unsigned int selectL ()
 
static unsigned int selectAlpha ()
 
static unsigned int selectAll ()
 

Static Public Attributes

static const unsigned int FEATURE_LINE [32]
 

Protected Member Functions

void resetFlags ()
 

Protected Attributes

vpColVector s
 
unsigned int dim_s
 
bool * flags
 
unsigned int nbParameters
 
vpBasicFeatureDeallocatorType deallocate
 

Detailed Description

Class that defines a 2D segment visual features. This class allow to consider two sets of visual features:

  • the non normalised features ${\bf s} = (x_c, y_c, l, \alpha)$ where $(x_c,y_c)$ are the coordinates of the segment center, $ l $ the segment length and $ \alpha $ the orientation of the segment with respect to the $ x $ axis.
  • or the normalized features ${\bf s} = (x_n, y_n, l_n, \alpha)$ with $x_n = x_c/l$, $y_n = y_c/l$ and $l_n = 1/l$.

The selection of the feature set is done either during construction using vpFeatureSegment(bool), or by setNormalized(bool).

Examples:
servoAfma6Segment2DCamVelocity.cpp, servoPioneerPanSegment3D.cpp, testFeatureSegment.cpp, and testPoseFeatures.cpp.

Definition at line 73 of file vpFeatureSegment.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited
Enumerator
FEATURE_ALL 

Definition at line 82 of file vpBasicFeature.h.

◆ vpBasicFeatureDeallocatorType

Indicates who should deallocate the feature.

Enumerator
user 
vpServo 

Definition at line 88 of file vpBasicFeature.h.

Constructor & Destructor Documentation

◆ vpFeatureSegment()

vpFeatureSegment::vpFeatureSegment ( bool  normalized = false)
explicit

Default constructor that builds an empty segment visual feature.

Parameters
normalized: If true, use normalized features ${\bf s} = (x_n, y_n, l_n, \alpha)$. If false, use non normalized features ${\bf s} = (x_c, y_c, l_c, \alpha)$.

Definition at line 86 of file vpFeatureSegment.cpp.

References init().

Referenced by duplicate().

◆ ~vpFeatureSegment()

virtual vpFeatureSegment::~vpFeatureSegment ( )
inlinevirtual

Destructor. Does nothing.

Definition at line 80 of file vpFeatureSegment.h.

References vpBasicFeature::display(), vpBasicFeature::duplicate(), vpBasicFeature::error(), and vpColor::green.

Member Function Documentation

◆ buildFrom()

void vpFeatureSegment::buildFrom ( double  x1,
double  y1,
double  Z1,
double  x2,
double  y2,
double  Z2 
)

Build a segment visual feature from two points and their Z coordinates.

Parameters
x1,y1: coordinates of the first point in the image plane.
Z1: depth of the first point in the camera frame.
x2,y2: coordinates of the second point in the image plane.
Z2: depth of the second point in the camera frame.

Depending on the feature set that is considered, the features ${\bf s} = (x_c, y_c, l, \alpha)$ or ${\bf s} = (x_n, y_n, l_n, \alpha)$ are computed from the two points using the following formulae:

\[ x_c = \frac{x_1 + x_2}{2} \]

\[ y_c = \frac{y_1 + y_2}{2} \]

\[ l = \sqrt{{x_1 - x_2}^2 + {y_1 - y_2}^2} \]

\[ \alpha = arctan(\frac{y_1 - y_2}{x_1 - x_2}) \]

Definition at line 566 of file vpFeatureSegment.cpp.

References setAlpha(), setL(), setXc(), setYc(), setZ1(), and setZ2().

Referenced by vpFeatureBuilder::create().

◆ dimension_s()

unsigned int vpBasicFeature::dimension_s ( )
inlineinherited

Return the dimension of the feature vector $\bf s$.

Definition at line 110 of file vpBasicFeature.h.

References vpColor::green.

◆ display() [1/2]

void vpFeatureSegment::display ( const vpCameraParameters cam,
const vpImage< unsigned char > &  I,
const vpColor color = vpColor::green,
unsigned int  thickness = 1 
) const
virtual

Displays a segment representing the feature on a greyscale image. The two limiting points are displayed in cyan and yellow.

Parameters
cam: Camera parameters.
I: Image.
color: Color to use for the segment.
thickness: Thickness of the feature representation.

Implements vpBasicFeature.

Examples:
servoAfma6Segment2DCamVelocity.cpp, and testFeatureSegment.cpp.

Definition at line 483 of file vpFeatureSegment.cpp.

References vpMeterPixelConversion::convertPoint(), vpDisplay::displayCircle(), vpDisplay::displayLine(), and vpColor::yellow.

◆ display() [2/2]

void vpFeatureSegment::display ( const vpCameraParameters cam,
const vpImage< vpRGBa > &  I,
const vpColor color = vpColor::green,
unsigned int  thickness = 1 
) const
virtual

Displays a segment representing the feature on a RGBa image. The two limiting points are displayed in cyan and yellow.

Parameters
cam: Camera parameters.
I: Image.
color: Color to use for the segment.
thickness: Thickness of the feature representation.

Implements vpBasicFeature.

Definition at line 521 of file vpFeatureSegment.cpp.

References vpMeterPixelConversion::convertPoint(), vpColor::cyan, vpDisplay::displayCircle(), vpDisplay::displayLine(), and vpColor::yellow.

◆ duplicate()

vpFeatureSegment * vpFeatureSegment::duplicate ( ) const
virtual

Feature duplication.

Create an object with the same type.

s_star = s.duplicate(); // s_star is now a vpFeatureSegment

Implements vpBasicFeature.

Definition at line 464 of file vpFeatureSegment.cpp.

References vpFeatureSegment().

◆ error()

vpColVector vpFeatureSegment::error ( const vpBasicFeature s_star,
unsigned int  select = FEATURE_ALL 
)
virtual

Computes the error between the current and the desired visual features from a subset of the possible features ${\bf s} = (x_c, y_c, l, \alpha)$ or ${\bf s} = (x_n, y_n, l_n, \alpha)$.

For the angular component $\alpha$, we define the error as $\alpha \ominus \alpha^*$, where $\ominus$ is modulo $2\pi$ subtraction.

Parameters
s_star: Desired 2D segment feature.
select: The error can be computed for a selection of a subset of the possible segment features.
Returns
The error between the current and the desired visual feature.

Reimplemented from vpBasicFeature.

Definition at line 363 of file vpFeatureSegment.cpp.

References selectAlpha(), selectL(), selectXc(), selectYc(), and vpColVector::stack().

Referenced by vpPoseFeatures::addFeatureSegment().

◆ get_s()

◆ getAlpha()

double vpFeatureSegment::getAlpha ( ) const
inline

Get the value of $ \alpha $ which represents the orientation of the segment.

Returns
The value of $ \alpha $.

Definition at line 125 of file vpFeatureSegment.h.

◆ getDeallocate()

vpBasicFeatureDeallocatorType vpBasicFeature::getDeallocate ( )
inlineinherited

Definition at line 123 of file vpBasicFeature.h.

◆ getDimension()

unsigned int vpBasicFeature::getDimension ( unsigned int  select = FEATURE_ALL) const
inherited

Get the feature vector dimension.

Definition at line 100 of file vpBasicFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, vpArray2D< Type >::getRows(), and vpBasicFeature::s.

Referenced by vpFeatureMoment::vpFeatureMoment().

◆ getL()

double vpFeatureSegment::getL ( ) const
inline

Get the length of the segment.

Returns
If normalized features are used, return $ l_n = 1 / l $. Otherwise return $ l $.

Definition at line 117 of file vpFeatureSegment.h.

◆ getXc()

double vpFeatureSegment::getXc ( ) const
inline

Get the x coordinate of the segment center in the image plane.

Returns
If normalized features are used, return $ x_n = x_c / l $. Otherwise return $ x_c $.

Definition at line 100 of file vpFeatureSegment.h.

◆ getYc()

double vpFeatureSegment::getYc ( ) const
inline

Get the y coordinate of the segment center in the image plane.

Returns
If normalized features are used, return $ y_n = y_c / l $. Otherwise return $ y_c $.

Definition at line 108 of file vpFeatureSegment.h.

◆ getZ1()

double vpFeatureSegment::getZ1 ( ) const
inline

Get the value of $ Z_1 $ which represents the Z coordinate in the camera frame of the 3D point that corresponds to the segment first point.

Returns
The value of the depth $ Z_1 $.

Definition at line 133 of file vpFeatureSegment.h.

◆ getZ2()

double vpFeatureSegment::getZ2 ( ) const
inline

Get the value of $ Z_2 $ which represents the Z coordinate in the camera frame of the 3D point that corresponds to the segment second point.

Returns
The value of the depth $ Z_2 $.

Definition at line 142 of file vpFeatureSegment.h.

References vpBasicFeature::init(), vpBasicFeature::interaction(), and vpBasicFeature::print().

◆ init()

void vpFeatureSegment::init ( void  )
virtual

Initialise the memory space requested for segment visual feature.

Implements vpBasicFeature.

Definition at line 65 of file vpFeatureSegment.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::flags, vpBasicFeature::nbParameters, vpColVector::resize(), and vpBasicFeature::s.

Referenced by vpFeatureSegment().

◆ interaction()

vpMatrix vpFeatureSegment::interaction ( unsigned int  select = FEATURE_ALL)
virtual

Compute and return the interaction matrix $ L $ associated to a subset of the possible features ${\bf s} = (x_c, y_c, l, \alpha)$ or ${\bf s} = (x_n, y_n, l_n, \alpha)$.

The interaction matrix of the non normalized feature set is of the following form:

\[ {\bf L} = \left[ \begin{array}{c} L_{x_c} \\ L_{y_c} \\ L_{l} \\ L_{\alpha} \end{array} \right] = \left[ \begin{array}{cccccc} -\lambda_2 & 0 & \lambda_2 x_c - \lambda_1 l \frac{\cos \alpha}{4} & x_c y_c + l^2 \frac{\cos \alpha \sin \alpha}{4} & -(1 + {x_{c}}^{2} + l^2 \frac{\cos^2\alpha}{4}) & y_c \\ 0 & -\lambda_2 & \lambda_2 y_c - \lambda_1 l \frac{\sin \alpha}{4} & 1 + {y_{c}}^{2} + l^2 \frac{\sin^2 \alpha}{4} & -x_c y_c-l^2 \frac{\cos \alpha \sin \alpha}{4} & -x_c \\ \lambda_1 \cos \alpha & \lambda_1 \sin \alpha & \lambda_2 l - \lambda_1 (x_c \cos \alpha + y_c \sin \alpha) & l (x_c \cos \alpha \sin \alpha + y_c (1 + \sin^2 \alpha)) & -l (x_c (1 + \cos^2 \alpha)+y_c \cos \alpha \sin \alpha) & 0 \\ -\lambda_1 \frac{\sin \alpha}{l} & \lambda_1 \frac{\cos \alpha}{l} & \lambda_1 \frac{x_c \sin \alpha - y_c \cos \alpha}{l} & -x_c \sin^2 \alpha + y_c \cos \alpha \sin \alpha & x_c \cos \alpha \sin \alpha - y_c \cos^2 \alpha & -1 \end{array} \right] \]

with $ \lambda_1 = \frac{Z_1 - Z_2}{Z_1 Z_2}$ and $ \lambda_2 = \frac{Z_1 + Z_2}{2 Z_1 Z_2}$ where $Z_i$ are the depths of the points.

Parameters
select: Selection of a subset of the possible segment features.
  • To compute the interaction matrix for all the four subset features $(x_c $, $ y_c $, $ l $, $ \alpha)$ or $(x_n $, $ y_n $, $ l_n $, $ \alpha)$ use vpBasicFeature::FEATURE_ALL. In that case the dimension of the interaction matrix is $ [4 \times 6] $.
  • To compute the interaction matrix for only one of the subset use one of the following functions: selectXc(), selectYc(), selectL(), selectAlpha(). In that case, the returned interaction matrix is of dimension $ [1 \times 6] $ .
Returns
The interaction matrix computed from the segment features.

The code below shows how to compute the interaction matrix associated to the visual feature ${\bf s} = (x_c, y_c, l, \alpha)$.

#include <visp3/core/vpPoint.h>
#include <visp3/visual_features/vpFeatureSegment.h>
int main()
{
// Define two 3D points in the object frame
vpPoint p1(.1, .1, 0.), p2(.3, .2, 0.);
// Define the camera pose wrt the object
vpHomogeneousMatrix cMo (0, 0, 1, 0, 0, 0); // Z=1 meter
// Compute the coordinates of the points in the camera frame
p1.changeFrame(cMo);
p2.changeFrame(cMo);
// Compute the coordinates of the points in the image plane by perspective projection
p1.project(); p2.project();
// Build the segment visual feature
s.buildFrom(p1.get_x(), p1.get_y(), p1.get_Z(), p2.get_x(), p2.get_y(), p2.get_Z());
// Compute the interaction matrix
}

In this case, L is a 4 by 6 matrix.

It is also possible to build the interaction matrix associated to one of the possible features. The code below shows how to modify the previous code to consider as visual feature $s = (l, \alpha)$.

In that case, L is a 2 by 6 matrix.

Implements vpBasicFeature.

Definition at line 188 of file vpFeatureSegment.cpp.

References vpBasicFeature::deallocate, vpBasicFeature::flags, vpBasicFeature::nbParameters, vpArray2D< Type >::resize(), selectAlpha(), selectL(), selectXc(), selectYc(), vpMatrix::stack(), vpBasicFeature::user, and vpTRACE.

Referenced by vpPoseFeatures::addFeatureSegment().

◆ isNormalized()

bool vpFeatureSegment::isNormalized ( )
inline

Indicates if the normalized features are considered.

Definition at line 155 of file vpFeatureSegment.h.

Referenced by vpFeatureBuilder::create().

◆ operator[]()

virtual double vpBasicFeature::operator[] ( unsigned int  i) const
inlinevirtualinherited

Return element i in the state vector (usage : x = s[i] )

Definition at line 130 of file vpBasicFeature.h.

◆ print()

void vpFeatureSegment::print ( unsigned int  select = FEATURE_ALL) const
virtual

Print to stdout the values of the current visual feature $ s $.

Parameters
select: Selection of a subset of the possible segement features ( $ x_c $, $ y_c $, $ l $, $ \alpha $).
s.print();

produces the following output:

vpFeatureSegment: (xc = -0.255634; yc = -0.13311; l = 0.105005; alpha = 92.1305 deg)

while

produces the following output:

vpFeatureSegment: (l = 0.105005; alpha = 92.1305 deg)

Implements vpBasicFeature.

Examples:
testFeatureSegment.cpp.

Definition at line 424 of file vpFeatureSegment.cpp.

References vpMath::deg(), vpBasicFeature::s, selectAlpha(), selectL(), selectXc(), and selectYc().

◆ resetFlags()

◆ selectAll()

static unsigned int vpBasicFeature::selectAll ( )
inlinestaticinherited

Select all the features.

Definition at line 142 of file vpBasicFeature.h.

◆ selectAlpha()

unsigned int vpFeatureSegment::selectAlpha ( )
static

Function used to select the $\alpha$ subfeature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $\alpha$ feature.

See the interaction() method for an usage example.

This function is also useful in the vpServo class to indicate that a subset of the visual feature is to use in the control law:

vpFeatureSegment s, s_star; // Current and desired visual feature
vpServo task;
...
// Add only the alpha subset feature from a segment to the task
See also
selectXc(), selectYc(), selectL()
Examples:
servoPioneerPanSegment3D.cpp.

Definition at line 690 of file vpFeatureSegment.cpp.

References vpBasicFeature::FEATURE_LINE.

Referenced by error(), interaction(), and print().

◆ selectL()

unsigned int vpFeatureSegment::selectL ( )
static

Function used to select the $l$ or $l_n$ subfeature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $l$ or $l_n$ feature.

See the interaction() method for an usage example.

This function is also useful in the vpServo class to indicate that a subset of the visual feature is to use in the control law:

vpFeatureSegment s, s_star; // Current and desired visual feature
vpServo task;
...
// Add only the l subset feature from a segment to the task
See also
selectXc(), selectYc(), selectAlpha()
Examples:
servoPioneerPanSegment3D.cpp.

Definition at line 665 of file vpFeatureSegment.cpp.

References vpBasicFeature::FEATURE_LINE.

Referenced by error(), interaction(), and print().

◆ selectXc()

unsigned int vpFeatureSegment::selectXc ( )
static

Function used to select the $x_c$ or $x_n$ subfeature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $x_c$ or $x_n$ feature.

See the interaction() method for an usage example.

This function is also useful in the vpServo class to indicate that a subset of the visual feature is to use in the control law:

vpFeatureSegment s, s_star; // Current and desired visual feature
vpServo task;
...
// Add only the xc subset feature from a segment to the task
See also
selectYc(), selectL(), selectAlpha()
Examples:
servoPioneerPanSegment3D.cpp.

Definition at line 615 of file vpFeatureSegment.cpp.

References vpBasicFeature::FEATURE_LINE.

Referenced by error(), interaction(), and print().

◆ selectYc()

unsigned int vpFeatureSegment::selectYc ( )
static

Function used to select the $y_c$ or $y_n$ subfeature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $y_c$ or $y_n$ feature.

See the interaction() method for an usage example.

This function is also useful in the vpServo class to indicate that a subset of the visual feature is to use in the control law:

vpFeatureSegment s, s_star; // Current and desired visual feature
vpServo task;
...
// Add only the yc subset feature from a segment to the task
See also
selectXc(), selectL(), selectAlpha()

Definition at line 640 of file vpFeatureSegment.cpp.

References vpBasicFeature::FEATURE_LINE.

Referenced by error(), interaction(), and print().

◆ setAlpha()

void vpFeatureSegment::setAlpha ( double  val)
inline

Set the value of $ \alpha $ which represents the orientation of the segment in the image plane. It is one parameter of the visual feature $ s $.

Parameters
val: $ \alpha $ value to set.

Definition at line 218 of file vpFeatureSegment.h.

Referenced by buildFrom(), and vpFeatureBuilder::create().

◆ setDeallocate()

void vpBasicFeature::setDeallocate ( vpBasicFeatureDeallocatorType  d)
inlineinherited

Definition at line 137 of file vpBasicFeature.h.

Referenced by vpServo::addFeature().

◆ setFlags()

void vpBasicFeature::setFlags ( )
inherited

Set feature flags to true to prevent warning when re-computing the interaction matrix without having updated the feature.

Definition at line 141 of file vpBasicFeature.cpp.

References vpBasicFeature::flags, and vpBasicFeature::nbParameters.

◆ setL()

void vpFeatureSegment::setL ( double  val)
inline

Set the value of the segment length in the image plane. It is one parameter of the visual feature $ s $.

Parameters
val: Value to set, that is either equal to $l_n= 1/l $ when normalized features are considered, or equal to $ l $ otherwise.

Definition at line 205 of file vpFeatureSegment.h.

Referenced by buildFrom(), and vpFeatureBuilder::create().

◆ setNormalized()

void vpFeatureSegment::setNormalized ( bool  normalized)
inline

Set the king of feature to consider.

Parameters
normalized: If true, use normalized features ${\bf s} = (x_n, y_n, l_n, \alpha)$. If false, use non normalized features ${\bf s} = (x_c, y_c, l_c, \alpha)$.
Examples:
testFeatureSegment.cpp.

Definition at line 168 of file vpFeatureSegment.h.

◆ setXc()

void vpFeatureSegment::setXc ( double  val)
inline

Set the value of the x coordinate of the segment center in the image plane. It is one parameter of the visual feature $ s $.

Parameters
val: Value to set, that is either equal to $ x_n = x_c/l $ when normalized features are considered, or equal to $ x_c $ otherwise.

Definition at line 178 of file vpFeatureSegment.h.

Referenced by buildFrom(), and vpFeatureBuilder::create().

◆ setYc()

void vpFeatureSegment::setYc ( double  val)
inline

Set the value of the y coordinate of the segment center in the image plane. It is one parameter of the visual feature $ s $.

Parameters
val: Value to set, that is either equal to $ y_n = y_c/l $ when normalized features are considered, or equal to $ y_c $ otherwise.

Definition at line 192 of file vpFeatureSegment.h.

Referenced by buildFrom(), and vpFeatureBuilder::create().

◆ setZ1()

void vpFeatureSegment::setZ1 ( double  val)
inline

Set the value of $ Z_1 $ which represents the Z coordinate in the camera frame of the 3D point that corresponds to the segment first point.

This value is requested to compute the interaction matrix.

Parameters
val: $ Z_1 $ value to set.
Exceptions
vpFeatureException::badInitializationError: If Z1 is behind the camera or equal to zero.
Examples:
servoAfma6Segment2DCamVelocity.cpp.

Definition at line 238 of file vpFeatureSegment.h.

References vpFeatureException::badInitializationError, and vpERROR_TRACE.

Referenced by buildFrom().

◆ setZ2()

void vpFeatureSegment::setZ2 ( double  val)
inline

Set the value of $ Z_2 $ which represents the Z coordinate in the camera frame of the 3D point that corresponds to the segment second point.

This value is requested to compute the interaction matrix.

Parameters
val: $ Z_2 $ value to set.
Exceptions
vpFeatureException::badInitializationError: If Z2 is behind the camera or equal to zero.
Examples:
servoAfma6Segment2DCamVelocity.cpp.

Definition at line 271 of file vpFeatureSegment.h.

References vpFeatureException::badInitializationError, and vpERROR_TRACE.

Referenced by buildFrom().

Member Data Documentation

◆ deallocate

◆ dim_s

◆ FEATURE_LINE

const unsigned int vpBasicFeature::FEATURE_LINE
staticinherited
Initial value:
= {
(unsigned int)(1 << 0), (unsigned int)(1 << 1), (unsigned int)(1 << 2), (unsigned int)(1 << 3),
(unsigned int)(1 << 4), (unsigned int)(1 << 5), (unsigned int)(1 << 6), (unsigned int)(1 << 7),
(unsigned int)(1 << 8), (unsigned int)(1 << 9), (unsigned int)(1 << 10), (unsigned int)(1 << 11),
(unsigned int)(1 << 12), (unsigned int)(1 << 13), (unsigned int)(1 << 14), (unsigned int)(1 << 15),
(unsigned int)(1 << 16), (unsigned int)(1 << 17), (unsigned int)(1 << 18), (unsigned int)(1 << 19),
(unsigned int)(1 << 20), (unsigned int)(1 << 21), (unsigned int)(1 << 22), (unsigned int)(1 << 23),
(unsigned int)(1 << 24), (unsigned int)(1 << 25), (unsigned int)(1 << 26), (unsigned int)(1 << 27),
(unsigned int)(1 << 28), (unsigned int)(1 << 29), (unsigned int)(1 << 30), (unsigned int)(1 << 31)}

Definition at line 80 of file vpBasicFeature.h.

Referenced by vpBasicFeature::error(), vpGenericFeature::error(), vpBasicFeature::get_s(), vpBasicFeature::getDimension(), vpFeatureMoment::getDimension(), vpGenericFeature::interaction(), vpFeatureMoment::interaction(), vpGenericFeature::print(), vpFeatureMoment::print(), vpFeatureEllipse::select_n02(), vpFeatureEllipse::select_n11(), vpFeatureEllipse::select_n20(), vpFeatureVanishingPoint::selectAlpha(), selectAlpha(), vpFeatureVanishingPoint::selectAtanOneOverRho(), selectL(), vpFeatureEllipse::selectMu02(), vpFeatureEllipse::selectMu11(), vpFeatureEllipse::selectMu20(), vpFeatureVanishingPoint::selectOneOverRho(), vpFeatureLine::selectRho(), vpFeaturePointPolar::selectRho(), vpFeatureLine::selectTheta(), vpFeaturePointPolar::selectTheta(), vpFeatureThetaU::selectTUx(), vpFeatureThetaU::selectTUy(), vpFeatureThetaU::selectTUz(), vpFeatureTranslation::selectTx(), vpFeatureTranslation::selectTy(), vpFeatureTranslation::selectTz(), vpFeatureVanishingPoint::selectX(), vpFeatureEllipse::selectX(), vpFeaturePoint::selectX(), vpFeaturePoint3D::selectX(), selectXc(), vpFeatureVanishingPoint::selectY(), vpFeatureEllipse::selectY(), vpFeaturePoint::selectY(), vpFeaturePoint3D::selectY(), selectYc(), and vpFeaturePoint3D::selectZ().

◆ flags

bool* vpBasicFeature::flags
protectedinherited

Ensure that all the parameters needed to compute the iteraction matrix are set.

Definition at line 98 of file vpBasicFeature.h.

Referenced by vpFeatureEllipse::buildFrom(), vpFeatureDepth::buildFrom(), vpFeaturePoint::buildFrom(), vpFeatureLine::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeaturePointPolar::buildFrom(), vpFeatureTranslation::buildFrom(), vpFeatureMoment::duplicate(), vpFeatureVanishingPoint::init(), vpFeatureLuminance::init(), vpFeatureEllipse::init(), init(), vpFeatureDepth::init(), vpFeaturePoint::init(), vpFeatureMoment::init(), vpFeatureLine::init(), vpFeaturePoint3D::init(), vpFeatureThetaU::init(), vpFeaturePointPolar::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::interaction(), vpFeatureEllipse::interaction(), interaction(), vpFeatureDepth::interaction(), vpFeaturePoint::interaction(), vpFeatureLine::interaction(), vpFeaturePoint3D::interaction(), vpFeatureThetaU::interaction(), vpFeaturePointPolar::interaction(), vpFeatureTranslation::interaction(), vpBasicFeature::operator=(), vpBasicFeature::resetFlags(), vpFeaturePointPolar::set_rho(), vpFeaturePointPolar::set_rhoThetaZ(), vpFeaturePointPolar::set_theta(), vpFeatureThetaU::set_TUx(), vpFeatureThetaU::set_TUy(), vpFeatureThetaU::set_TUz(), vpFeatureVanishingPoint::set_x(), vpFeatureEllipse::set_x(), vpFeatureDepth::set_x(), vpFeaturePoint::set_x(), vpFeaturePoint3D::set_X(), vpFeatureEllipse::set_xy(), vpFeaturePoint::set_xyZ(), vpFeaturePoint3D::set_XYZ(), vpFeatureDepth::set_xyZLogZoverZstar(), vpFeatureVanishingPoint::set_y(), vpFeatureEllipse::set_y(), vpFeatureDepth::set_y(), vpFeaturePoint::set_y(), vpFeaturePoint3D::set_Y(), vpFeatureLuminance::set_Z(), vpFeatureDepth::set_Z(), vpFeaturePoint::set_Z(), vpFeaturePoint3D::set_Z(), vpFeaturePointPolar::set_Z(), vpFeatureEllipse::setABC(), vpFeatureLine::setABCD(), vpFeatureVanishingPoint::setAlpha(), vpFeatureVanishingPoint::setAtanOneOverRho(), vpBasicFeature::setFlags(), vpFeatureEllipse::setMoments(), vpFeatureVanishingPoint::setOneOverRho(), vpFeatureLine::setRhoTheta(), vpFeatureMoment::update(), vpFeatureLuminance::vpFeatureLuminance(), and vpBasicFeature::~vpBasicFeature().

◆ nbParameters

◆ s

vpColVector vpBasicFeature::s
protectedinherited

State of the visual feature.

Definition at line 92 of file vpBasicFeature.h.

Referenced by vpFeatureEllipse::buildFrom(), vpFeatureLuminance::buildFrom(), vpFeatureDepth::buildFrom(), vpFeaturePoint::buildFrom(), vpFeatureLine::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeaturePointPolar::buildFrom(), vpFeatureTranslation::buildFrom(), vpFeatureEllipse::display(), vpFeatureMoment::duplicate(), vpFeatureEllipse::error(), vpFeatureVanishingPoint::error(), vpFeatureLuminance::error(), vpBasicFeature::error(), vpFeatureMomentAlpha::error(), vpFeatureDepth::error(), vpGenericFeature::error(), vpFeaturePoint::error(), vpFeatureLine::error(), vpFeaturePoint3D::error(), vpFeatureThetaU::error(), vpFeaturePointPolar::error(), vpFeatureTranslation::error(), vpFeatureDepth::get_LogZoverZstar(), vpFeaturePointPolar::get_rho(), vpBasicFeature::get_s(), vpGenericFeature::get_s(), vpFeaturePointPolar::get_theta(), vpFeatureThetaU::get_TUx(), vpFeatureThetaU::get_TUy(), vpFeatureThetaU::get_TUz(), vpFeatureTranslation::get_Tx(), vpFeatureTranslation::get_Ty(), vpFeatureTranslation::get_Tz(), vpFeatureVanishingPoint::get_x(), vpFeaturePoint::get_x(), vpFeaturePoint3D::get_X(), vpFeatureVanishingPoint::get_y(), vpFeaturePoint::get_y(), vpFeaturePoint3D::get_Y(), vpFeaturePoint3D::get_Z(), vpFeatureVanishingPoint::getAlpha(), vpFeatureVanishingPoint::getAtanOneOverRho(), vpBasicFeature::getDimension(), vpFeatureVanishingPoint::getOneOverRho(), vpFeatureVanishingPoint::init(), vpFeatureLuminance::init(), vpFeatureEllipse::init(), init(), vpFeatureDepth::init(), vpGenericFeature::init(), vpFeaturePoint::init(), vpFeatureMoment::init(), vpFeatureLine::init(), vpFeaturePoint3D::init(), vpFeatureThetaU::init(), vpFeaturePointPolar::init(), vpFeatureTranslation::init(), vpFeatureEllipse::interaction(), vpFeatureLine::interaction(), vpFeatureThetaU::interaction(), vpFeatureTranslation::interaction(), vpBasicFeature::operator=(), vpFeatureEllipse::print(), print(), vpGenericFeature::print(), vpFeatureMoment::print(), vpFeatureLine::print(), vpFeatureThetaU::print(), vpFeatureTranslation::print(), vpFeatureDepth::set_LogZoverZstar(), vpFeaturePointPolar::set_rho(), vpGenericFeature::set_s(), vpFeaturePointPolar::set_theta(), vpFeatureThetaU::set_TUx(), vpFeatureThetaU::set_TUy(), vpFeatureThetaU::set_TUz(), vpFeatureTranslation::set_Tx(), vpFeatureTranslation::set_Ty(), vpFeatureTranslation::set_Tz(), vpFeatureVanishingPoint::set_x(), vpFeatureEllipse::set_x(), vpFeaturePoint::set_x(), vpFeaturePoint3D::set_X(), vpFeatureEllipse::set_xy(), vpFeatureVanishingPoint::set_y(), vpFeatureEllipse::set_y(), vpFeaturePoint::set_y(), vpFeaturePoint3D::set_Y(), vpFeaturePoint3D::set_Z(), vpFeatureVanishingPoint::setAlpha(), vpFeatureVanishingPoint::setAtanOneOverRho(), vpFeatureEllipse::setMoments(), vpFeatureVanishingPoint::setOneOverRho(), vpFeatureLine::setRhoTheta(), vpFeatureMoment::update(), and vpGenericFeature::vpGenericFeature().