Visual Servoing Platform  version 3.6.1 under development (2024-12-17)
vpFeatureSegment Class Reference

#include <visp3/visual_features/vpFeatureSegment.h>

+ Inheritance diagram for vpFeatureSegment:

Public Types

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

Public Member Functions

VP_EXPLICIT vpFeatureSegment (bool normalized=false)
 
vpFeatureSegmentbuildFrom (const double &x1, const double &y1, const double &Z1, const double &x2, const double &y2, const double &Z2)
 
void display (const vpCameraParameters &cam, const vpImage< unsigned char > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const VP_OVERRIDE
 
void display (const vpCameraParameters &cam, const vpImage< vpRGBa > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const VP_OVERRIDE
 
vpFeatureSegmentduplicate () const VP_OVERRIDE
 
vpColVector error (const vpBasicFeature &s_star, unsigned int select=FEATURE_ALL) VP_OVERRIDE
 
double getXc () const
 
double getYc () const
 
double getL () const
 
double getAlpha () const
 
double getZ1 () const
 
double getZ2 () const
 
void init () VP_OVERRIDE
 
vpMatrix interaction (unsigned int select=FEATURE_ALL) VP_OVERRIDE
 
void print (unsigned int select=FEATURE_ALL) const VP_OVERRIDE
 
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)
 

Static Public Member Functions

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

Static Public Attributes

static const unsigned int FEATURE_LINE [32]
 

Protected Attributes

vpColVector s
 
unsigned int dim_s
 
bool * flags
 
unsigned int nbParameters
 

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 unsigned int selectAll ()
 
vpBasicFeatureDeallocatorType deallocate
 
void resetFlags ()
 

Detailed Description

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

  • the non normalized 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 67 of file vpFeatureSegment.h.

Member Enumeration Documentation

◆ vpBasicFeatureDeallocatorType

Indicates who should deallocate the feature.

Enumerator
user 
vpServo 

Definition at line 88 of file vpBasicFeature.h.

◆ vpBasicFeatureSelect

Enumerator
FEATURE_ALL 

Definition at line 83 of file vpBasicFeature.h.

Constructor & Destructor Documentation

◆ vpFeatureSegment()

vpFeatureSegment::vpFeatureSegment ( bool  normalized = false)

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 79 of file vpFeatureSegment.cpp.

References init().

Referenced by duplicate().

Member Function Documentation

◆ buildFrom()

vpFeatureSegment & vpFeatureSegment::buildFrom ( const double &  x1,
const double &  y1,
const double &  Z1,
const double &  x2,
const double &  y2,
const 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 558 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.

◆ 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 grayscale 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 475 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 513 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
class that defines what is a visual feature
vpColVector s
State of the visual feature.
Class that defines a 2D segment visual features. This class allow to consider two sets of visual feat...

Implements vpBasicFeature.

Definition at line 458 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 358 of file vpFeatureSegment.cpp.

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

◆ 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 116 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.

Examples
testPoint.cpp.

Definition at line 102 of file vpBasicFeature.cpp.

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

◆ 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 108 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 92 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 100 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 124 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 133 of file vpFeatureSegment.h.

◆ init()

BEGIN_VISP_NAMESPACE void vpFeatureSegment::init ( void  )
virtual

Initialise the memory space requested for segment visual feature.

Implements vpBasicFeature.

Definition at line 58 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>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
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
}
Implementation of an homogeneous matrix and operations on such kind of matrices.
Implementation of a matrix and operations on matrices.
Definition: vpMatrix.h:169
Class that defines a 3D point in the object frame and allows forward projection of a 3D point in the ...
Definition: vpPoint.h:79

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)$.

static unsigned int selectAlpha()
static unsigned int selectL()

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

Implements vpBasicFeature.

Definition at line 184 of file vpFeatureSegment.cpp.

References vpBasicFeature::deallocate, vpBasicFeature::flags, vpBasicFeature::nbParameters, selectAlpha(), selectL(), selectXc(), selectYc(), vpMatrix::stack(), and vpBasicFeature::user.

◆ isNormalized()

bool vpFeatureSegment::isNormalized ( )
inline

Indicates if the normalized features are considered.

Definition at line 146 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 segment features ( $ x_c $, $ y_c $, $ l $, $ \alpha $).
s.print();
int print(std::ostream &s, unsigned int length, char const *intro=0) const

produces the following output:

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

while

produces the following output:

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

Implements vpBasicFeature.

Examples
testFeatureSegment.cpp.

Definition at line 419 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.

Examples
testPoint.cpp.

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
void addFeature(vpBasicFeature &s_cur, vpBasicFeature &s_star, unsigned int select=vpBasicFeature::FEATURE_ALL)
Definition: vpServo.cpp:331
See also
selectXc(), selectYc(), selectL()
Examples
servoPioneerPanSegment3D.cpp.

Definition at line 680 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 656 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
static unsigned int selectXc()
See also
selectYc(), selectL(), selectAlpha()
Examples
servoPioneerPanSegment3D.cpp.

Definition at line 608 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
static unsigned int selectYc()
See also
selectXc(), selectL(), selectAlpha()

Definition at line 632 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 209 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 142 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 196 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 159 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 169 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 183 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 228 of file vpFeatureSegment.h.

References vpFeatureException::badInitializationError.

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 260 of file vpFeatureSegment.h.

References vpFeatureException::badInitializationError.

Referenced by buildFrom().

Member Data Documentation

◆ deallocate

◆ dim_s

◆ FEATURE_LINE

BEGIN_VISP_NAMESPACE 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 81 of file vpBasicFeature.h.

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

◆ flags

bool* vpBasicFeature::flags
protectedinherited

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

Definition at line 98 of file vpBasicFeature.h.

Referenced by vpFeatureLine::buildFrom(), vpFeaturePointPolar::buildFrom(), vpFeatureEllipse::buildFrom(), vpFeaturePoint::buildFrom(), vpFeatureDepth::buildFrom(), vpFeatureTranslation::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeatureMoment::duplicate(), vpFeatureDepth::init(), vpFeatureEllipse::init(), vpFeatureLine::init(), vpFeatureLuminance::init(), vpFeaturePoint::init(), vpFeaturePoint3D::init(), vpFeaturePointPolar::init(), init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), vpFeatureMoment::init(), vpFeatureVanishingPoint::interaction(), vpFeatureDepth::interaction(), vpFeatureEllipse::interaction(), vpFeatureLine::interaction(), vpFeaturePoint::interaction(), vpFeaturePoint3D::interaction(), vpFeaturePointPolar::interaction(), interaction(), vpFeatureThetaU::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(), vpFeatureDepth::set_x(), vpFeatureEllipse::set_x(), vpFeaturePoint::set_x(), vpFeaturePoint3D::set_X(), vpFeatureVanishingPoint::set_x(), vpFeatureEllipse::set_xy(), vpFeaturePoint::set_xyZ(), vpFeaturePoint3D::set_XYZ(), vpFeatureDepth::set_xyZLogZoverZstar(), vpFeatureDepth::set_y(), vpFeatureEllipse::set_y(), vpFeaturePoint::set_y(), vpFeaturePoint3D::set_Y(), vpFeatureVanishingPoint::set_y(), vpFeatureDepth::set_Z(), vpFeatureLuminance::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 vpFeatureLine::buildFrom(), vpFeaturePointPolar::buildFrom(), vpFeatureEllipse::buildFrom(), vpFeaturePoint::buildFrom(), vpFeatureDepth::buildFrom(), vpFeatureTranslation::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeatureLuminance::buildFrom(), vpFeatureLuminanceMapping::buildFrom(), vpFeatureEllipse::display(), vpFeatureMoment::duplicate(), vpFeatureVanishingPoint::error(), vpBasicFeature::error(), vpFeatureDepth::error(), vpFeatureEllipse::error(), vpFeatureLine::error(), vpFeatureMomentAlpha::error(), vpFeaturePoint::error(), vpFeaturePoint3D::error(), vpFeaturePointPolar::error(), vpFeatureThetaU::error(), vpFeatureTranslation::error(), vpGenericFeature::error(), vpFeatureLuminance::error(), vpFeatureLuminanceMapping::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(), vpFeaturePoint::get_x(), vpFeaturePoint3D::get_X(), vpFeatureVanishingPoint::get_x(), vpFeaturePoint::get_y(), vpFeaturePoint3D::get_Y(), vpFeatureVanishingPoint::get_y(), vpFeaturePoint3D::get_Z(), vpFeatureVanishingPoint::getAlpha(), vpFeatureVanishingPoint::getAtanOneOverRho(), vpBasicFeature::getDimension(), vpFeatureVanishingPoint::getOneOverRho(), vpFeatureDepth::init(), vpFeatureEllipse::init(), vpFeatureLine::init(), vpFeaturePoint::init(), vpFeaturePoint3D::init(), vpFeaturePointPolar::init(), init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), vpGenericFeature::init(), vpFeatureLuminanceMapping::init(), vpFeatureLuminance::init(), vpFeatureMoment::init(), vpFeatureEllipse::interaction(), vpFeatureLine::interaction(), vpFeatureThetaU::interaction(), vpFeatureTranslation::interaction(), vpFeatureLuminanceMapping::interaction(), vpBasicFeature::operator=(), vpFeatureLuminance::operator=(), vpFeatureLuminanceMapping::operator=(), vpFeatureEllipse::print(), vpFeatureLine::print(), vpFeatureLuminanceMapping::print(), vpFeatureMoment::print(), print(), vpFeatureThetaU::print(), vpFeatureTranslation::print(), vpGenericFeature::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(), vpFeatureEllipse::set_x(), vpFeaturePoint::set_x(), vpFeaturePoint3D::set_X(), vpFeatureVanishingPoint::set_x(), vpFeatureEllipse::set_xy(), vpFeatureEllipse::set_y(), vpFeaturePoint::set_y(), vpFeaturePoint3D::set_Y(), vpFeatureVanishingPoint::set_y(), vpFeaturePoint3D::set_Z(), vpFeatureVanishingPoint::setAlpha(), vpFeatureVanishingPoint::setAtanOneOverRho(), vpFeatureEllipse::setMoments(), vpFeatureVanishingPoint::setOneOverRho(), vpFeatureLine::setRhoTheta(), vpFeatureMoment::update(), and vpGenericFeature::vpGenericFeature().