Visual Servoing Platform  version 3.6.1 under development (2024-11-21)
vpGenericFeature Class Reference

#include <visp3/visual_features/vpGenericFeature.h>

+ Inheritance diagram for vpGenericFeature:

Public Types

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

Public Member Functions

VP_EXPLICIT vpGenericFeature (unsigned int dim)
 
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
 
vpGenericFeatureduplicate () const VP_OVERRIDE
 
vpColVector error (const vpBasicFeature &s_star, unsigned int select=FEATURE_ALL) VP_OVERRIDE
 
vpColVector error (unsigned int select=FEATURE_ALL)
 
vpMatrix getInteractionMatrix () const
 
void get_s (vpColVector &s) const
 
void get_s (double &s0) const
 
void get_s (double &s0, double &s1) const
 
void get_s (double &s0, double &s1, double &s2) const
 
void init () VP_OVERRIDE
 
vpMatrix interaction (unsigned int select=FEATURE_ALL) VP_OVERRIDE
 
void print (unsigned int select=FEATURE_ALL) const VP_OVERRIDE
 
void setInteractionMatrix (const vpMatrix &L)
 
void setError (const vpColVector &error_vector)
 
void set_s (const vpColVector &s)
 
void set_s (const double s0)
 
void set_s (const double s0, const double s1)
 
void set_s (const double s0, const double s1, const double s2)
 

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

Detailed Description

Class that enables to define a feature or a set of features which are not implemented in ViSP as a specific class. It is indeed possible to create its own features, to use the corresponding interaction matrix, and to compute an error between the current and the desired feature. Moreover the created features can be mixed with features already implemented.

The following example shows how to use the vpGenericFeature class to create and use the feature $ log(Z) $ where Z corresponds to the depth of a point whose 2D coordinates in the camera frame are $ x $ and $ y $. The interaction matrix corresponding to this feature is

\[ L = \left[\begin{array}{cccccc} 0 & 0 & -1/Z & -y & x & 0 \end{array}\right]\]

.

#include <visp3/core/vpGenericFeature.h>
#include <visp3/vs/vpServo.h>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpServo task; // Visual servoing task
//First we have to define the desired feature log(Z*) corresponding to the desired point.
double xd = 0; //The x coordinate of the desired point.
double yd = 0; //The y coordinate of the desired point.
double Zd = 1; //The depth of the desired point.
vpGenericFeature logZd(1); //The dimension of the feature is 1.
logZd.set_s( log(Zd) );
//Then we have to define the current feature log(Z) corresponding to the current point.
double x = 1; //The x coordinate of the current point.
double y = 1; //The y coordinate of the current point.
double Z = 2; //The depth of the current point.
vpGenericFeature logZ(1); //The dimension of the feature is 1.
logZ.set_s( log(Z) );
// Set eye-in-hand control law.
// The computed velocities will be expressed in the camera frame
// Interaction matrix is computed with the current visual features sd
// Add the point feature to the task
task.addFeature(logZ, logZd);
// Control loop
for ( ; ; ) {
// The new parameters x, y and Z must be computed here.
// Update the current point visual feature
logZ.set_s( log(Z) ) ;
// We have to compute the interaction matrix corresponding to the feature.
vpMatrix LlogZ(1,6) ;
LlogZ[0][0] = LlogZ[0][1] = LlogZ[0][5] = 0 ;
LlogZ[0][2] = -1/Z;
LlogZ[0][3] = -y;
LlogZ[0][4] = x;
logZ.setInteractionMatrix(LlogZ) ;
// compute the control law
vpColVector v = task.computeControlLaw(); // camera velocity
}
return 0;
}
Implementation of column vector and the associated operations.
Definition: vpColVector.h:191
Class that enables to define a feature or a set of features which are not implemented in ViSP as a sp...
Implementation of a matrix and operations on matrices.
Definition: vpMatrix.h:169
void setInteractionMatrixType(const vpServoIteractionMatrixType &interactionMatrixType, const vpServoInversionType &interactionMatrixInversion=PSEUDO_INVERSE)
Definition: vpServo.cpp:380
@ EYEINHAND_CAMERA
Definition: vpServo.h:161
void addFeature(vpBasicFeature &s_cur, vpBasicFeature &s_star, unsigned int select=vpBasicFeature::FEATURE_ALL)
Definition: vpServo.cpp:331
void setServo(const vpServoType &servo_type)
Definition: vpServo.cpp:134
vpColVector computeControlLaw()
Definition: vpServo.cpp:705
@ CURRENT
Definition: vpServo.h:202

The second example shows how to create and use a feature whose specificity is to have a desired feature fixed to zero. It is the case for the feature $ log( \frac{Z}{Z^*}) $.

#include <visp3/core/vpGenericFeature.h>
#include <visp3/vs/vpServo.h>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpServo task; // Visual servoing task
//First we have to define the desired feature log(Z*) corresponding to the desired point.
double xd = 0; //The x coordinate of the desired point.
double yd = 0; //The y coordinate of the desired point.
double Zd = 1; //The depth of the desired point.
//Then we have to define the current feature log(Z) corresponding to the current point.
double x = 1; //The x coordinate of the current point.
double y = 1; //The y coordinate of the current point.
double Z = 2; //The depth of the current point.
vpGenericFeature logZ(1); //The dimension of the feature is 1.
logZ.set_s( log(Z/Zd) );
// Set eye-in-hand control law.
// The computed velocities will be expressed in the camera frame
// Interaction matrix is computed with the current visual features sd
// Add the point feature to the task
task.addFeature(logZ);
// Control loop
for ( ; ; ) {
// The new parameters x, y and Z must be computed here.
// Update the current point visual feature
logZ.set_s( log(Z/Zd) ) ;
// We have to compute the interaction matrix corresponding to the feature.
vpMatrix LlogZ(1,6) ;
LlogZ[0][0] = LlogZ[0][1] = LlogZ[0][5] = 0 ;
LlogZ[0][2] = -1/Z;
LlogZ[0][3] = -y;
LlogZ[0][4] = x;
logZ.setInteractionMatrix(LlogZ) ;
// compute the control law
vpColVector v = task.computeControlLaw(); // camera velocity
}
return 0;
}

If the feature needs to be use with other features, the example servoSimuPoint2DhalfCamVelocity2.cpp shows how to do it.

Examples
servoSimuPoint2DhalfCamVelocity2.cpp, and servoSimuSphere.cpp.

Definition at line 185 of file vpGenericFeature.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

◆ vpGenericFeature()

vpGenericFeature::vpGenericFeature ( unsigned int  dimension_gen_s)

Constructor of the class you have to use. The feature table is initilialized with the good dimension.

Parameters
dimension_gen_s: Dimension of the generic feature. It corresponds to the number of features you want to create.

Definition at line 77 of file vpGenericFeature.cpp.

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

Member Function Documentation

◆ 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 vpGenericFeature::display ( const vpCameraParameters cam,
const vpImage< unsigned char > &  I,
const vpColor color = vpColor::green,
unsigned int  thickness = 1 
) const
virtual

Not implemented.

Implements vpBasicFeature.

Definition at line 623 of file vpGenericFeature.cpp.

◆ display() [2/2]

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

Not implemented.

Implements vpBasicFeature.

Definition at line 638 of file vpGenericFeature.cpp.

◆ duplicate()

vpGenericFeature * vpGenericFeature::duplicate ( ) const
virtual

Implements vpBasicFeature.

Definition at line 612 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s.

◆ error() [1/2]

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

Compute the error $ (s-s^*)$ between the current and the desired visual features from a subset of the possible features.

Exceptions
iferrorHasBeenInitialized is true (that is if vpGenericFeature::setError have been used) then s_star is useless. In that since the error HAS TO BE recomputed at each iteration errorHasBeenInitialized is set to errHasToBeUpdated if vpGenericFeature::serError is not used in the loop then an exception is thrown

obviously if vpGenericFeature::setError is not used then s_star is considered and this warning is meaningless.

Parameters
s_star: Desired visual feature.
select: The error can be computed for a selection of a subset of the possible features.
  • To compute the error for all the features use vpBasicFeature::FEATURE_ALL. In that case the error vector column vector whose dimension is equal to the number of features.
  • To compute the error for only one of the component feature you have to say which one you want to take into account. If it is the first one set select to vpBasicFeature::FEATURE_LINE[0], if it is the second one set select to vpBasicFeature::FEATURE_LINE[1], and so on. In that case the error vector is a 1 dimension column vector.
  • To compute the error for only two of the component feature you have to say which ones you want to take into account. If it is the first one and the second one set select to vpBasicFeature::FEATURE_LINE[0] | vpBasicFeature::FEATURE_LINE[1]. In that case the error vector is a 2 dimension column vector.
Returns
The error $ (s-s^*)$ between the current and the desired visual feature.

The code below shows how to use this method to manipulate the two visual features over three:

// Creation of the current feature s
s.set_s(0, 0, 0);
// Creation of the desired feature s*
vpGenericFeature s_star(3);
s_star.set_s(1, 1, 1);
// Here you have to compute the interaction matrix L
s.setInteractionMatrix(L);
// Compute the error vector (s-s*) for the two first features
vpColVector s
State of the visual feature.
static const unsigned int FEATURE_LINE[32]

Reimplemented from vpBasicFeature.

Definition at line 159 of file vpGenericFeature.cpp.

References vpFeatureException::badErrorVectorError, vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, vpBasicFeature::get_s(), vpArray2D< Type >::getRows(), vpBasicFeature::s, vpFeatureException::sizeMismatchError, and vpColVector::stack().

◆ error() [2/2]

vpColVector vpGenericFeature::error ( unsigned int  select = FEATURE_ALL)

Compute the error $ (s-s^*)$ between the current and the desired visual features from a subset of the possible features. But in this case the desired feature is considered as set to 0.

Parameters
select: The error can be computed for a selection of a subset of the possible features.
  • To compute the error for all the features use vpBasicFeature::FEATURE_ALL. In that case the error vector column vector whose dimension is equal to the number of features.
  • To compute the error for only one of the component feature you have to say which one you want to take into account. If it is the first one set select to vpBasicFeature::FEATURE_LINE[0], if it is the second one set select to vpBasicFeature::FEATURE_LINE[1], and so on. In that case the error vector is a 1 dimension column vector.
  • To compute the error for only two of the component feature you have to say which ones you want to take into account. If it is the first one and the second one set select to vpBasicFeature::FEATURE_LINE[0] | vpBasicFeature::FEATURE_LINE[1]. In that case the error vector is a 2 dimension column vector.
Returns
The error $ (s-s^*)$ between the current and the desired visual feature which is automatically set to zero.

The code below shows how to use this method to manipulate the two visual features over three:

// Creation of the current feature s
s.set_s(0, 0, 0);
// Here you have to compute the interaction matrix L
s.setInteractionMatrix(L);
// Compute the error vector (s-s*) for the two first features

Definition at line 247 of file vpGenericFeature.cpp.

References vpFeatureException::badErrorVectorError, vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, vpBasicFeature::s, and vpColVector::stack().

◆ get_s() [1/5]

void vpGenericFeature::get_s ( double &  s0) const

get the value of one feature if the number of feature is equal to 1.

Parameters
s0: value of the visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 567 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, and vpFeatureException::sizeMismatchError.

◆ get_s() [2/5]

void vpGenericFeature::get_s ( double &  s0,
double &  s1 
) const

get the value of two features if the number of feature is equal to 2.

Parameters
s0: value of the first visual feature
s1: value of the second visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 524 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, and vpFeatureException::sizeMismatchError.

◆ get_s() [3/5]

void vpGenericFeature::get_s ( double &  s0,
double &  s1,
double &  s2 
) const

get the value of three features if the number of feature is equal to 3.

Parameters
s0: value of the first visual feature
s1: value of the second visual feature
s2: value of the third visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 475 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, and vpFeatureException::sizeMismatchError.

◆ get_s() [4/5]

◆ get_s() [5/5]

void vpGenericFeature::get_s ( vpColVector s_vector) const

get the value of all the features.

Parameters
s_vector: It is a vector which will contain the value of the visual features.
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor
Examples
servoSimuSphere.cpp.

Definition at line 422 of file vpGenericFeature.cpp.

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

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

◆ getInteractionMatrix()

vpMatrix vpGenericFeature::getInteractionMatrix ( ) const
inline

Definition at line 202 of file vpGenericFeature.h.

◆ init()

BEGIN_VISP_NAMESPACE void vpGenericFeature::init ( void  )
virtual

Implements vpBasicFeature.

Definition at line 46 of file vpGenericFeature.cpp.

References vpBasicFeature::s.

◆ interaction()

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

Compute and return the interaction matrix $ L $ for the whole features or a part of them.

Parameters
select: Selection of a subset of the possible features.
  • To compute the interaction matrix for all the features use vpBasicFeature::FEATURE_ALL. In that case the dimension of the interaction matrix is $ [number of features \times 6] $
  • To compute the interaction matrix for only one of the component feature you have to say which one you want to take into account. If it is the first one set select to vpBasicFeature::FEATURE_LINE[0], if it is the second one set select to vpBasicFeature::FEATURE_LINE[1], and so on. In that case the returned interaction matrix is $ [1 \times 6] $ dimension.
  • To compute the interaction matrix for only two of the component features you have to say which ones you want to take into account. If it is the first one and the second one set select to vpBasicFeature::FEATURE_LINE[0] | vpBasicFeature::FEATURE_LINE[1]. In that case the returned interaction matrix is $ [2 \times 6] $ dimension.
Returns
The interaction matrix computed from the features.

The code below shows how to compute the interaction matrix associated to the first visual feature.

// Creation of the current feature s
s.set_s(0, 0, 0);
// Here you have to compute the interaction matrix L for all the three
features s.setInteractionMatrix(L);
vpMatrix L_x = s.interaction( vpBasicFeature::FEATURE_LINE[0] );

The code below shows how to compute the interaction matrix associated to two visual features over three.

// Creation of the current feature s
s.set_s(0, 0, 0);
// Here you have to compute the interaction matrix L
s.setInteractionMatrix(L);

Implements vpBasicFeature.

Definition at line 337 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, vpArray2D< Type >::getRows(), vpFeatureException::notInitializedError, vpArray2D< Type >::resize(), and vpMatrix::stack().

◆ 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 vpGenericFeature::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 features.
vpGenericFeature s; // Current visual feature s
// Creation of the current feature s
s.set_s(0, 0, 0);
s.print(); // print all components of the feature
s.print(vpBasicFeature::FEATURE_ALL); // same behavior then previous line
s.print(vpBasicFeature::FEATURE_LINE[0]); // print only the first component
int print(std::ostream &s, unsigned int length, char const *intro=0) const

Implements vpBasicFeature.

Definition at line 600 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, and vpBasicFeature::s.

◆ resetFlags()

◆ selectAll()

static unsigned int vpBasicFeature::selectAll ( )
inlinestaticinherited

Select all the features.

Examples
testPoint.cpp.

Definition at line 142 of file vpBasicFeature.h.

◆ set_s() [1/4]

void vpGenericFeature::set_s ( const double  s0)

set the value of one feature if the number of feature is equal to 1.

Parameters
s0: value of the visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 546 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, and vpFeatureException::sizeMismatchError.

◆ set_s() [2/4]

void vpGenericFeature::set_s ( const double  s0,
const double  s1 
)

set the value of two features if the number of feature is equal to 2.

Parameters
s0: value of the first visual feature
s1: value of the second visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 500 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, and vpFeatureException::sizeMismatchError.

◆ set_s() [3/4]

void vpGenericFeature::set_s ( const double  s0,
const double  s1,
const double  s2 
)

set the value of three features if the number of feature is equal to 3.

Parameters
s0: value of the first visual feature
s1: value of the second visual feature
s2: value of the third visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 447 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, and vpFeatureException::sizeMismatchError.

◆ set_s() [4/4]

void vpGenericFeature::set_s ( const vpColVector s_vector)

set the value of all the features.

Parameters
s_vector: It is a vector containing the value of the visual features.
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor
Examples
servoSimuSphere.cpp.

Definition at line 400 of file vpGenericFeature.cpp.

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

◆ setDeallocate()

void vpBasicFeature::setDeallocate ( vpBasicFeatureDeallocatorType  d)
inlineinherited

Definition at line 137 of file vpBasicFeature.h.

Referenced by vpServo::addFeature().

◆ setError()

void vpGenericFeature::setError ( const vpColVector error_vector)

Set the error vector $(s-s*)$.

Parameters
error_vector: Error vector $(s-s*)$.
Exceptions
vpFeatureException::sizeMismatchError: If the size of the error vector is bad.

Definition at line 92 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpArray2D< Type >::getRows(), and vpFeatureException::sizeMismatchError.

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

◆ setInteractionMatrix()

void vpGenericFeature::setInteractionMatrix ( const vpMatrix L_)

set the value of the interaction matrix.

Parameters
L_: The matrix corresponding to the interaction matrix you computed.
Exceptions
anexception is thrown if the number of row of the interaction matrix is different from the dimension of the visual feature as specified in the constructor

Definition at line 377 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpArray2D< Type >::getRows(), and vpFeatureException::sizeMismatchError.

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(), error(), vpBasicFeature::get_s(), vpBasicFeature::getDimension(), vpFeatureMoment::getDimension(), vpFeatureMoment::interaction(), interaction(), vpFeatureMoment::print(), print(), vpFeatureEllipse::select_n02(), vpFeatureEllipse::select_n11(), vpFeatureEllipse::select_n20(), vpFeatureSegment::selectAlpha(), vpFeatureVanishingPoint::selectAlpha(), vpFeatureVanishingPoint::selectAtanOneOverRho(), vpFeatureSegment::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(), vpFeatureSegment::selectXc(), vpFeatureEllipse::selectY(), vpFeaturePoint::selectY(), vpFeaturePoint3D::selectY(), vpFeatureVanishingPoint::selectY(), vpFeatureSegment::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(), vpFeatureSegment::init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), vpFeatureMoment::init(), vpFeatureVanishingPoint::interaction(), vpFeatureDepth::interaction(), vpFeatureEllipse::interaction(), vpFeatureLine::interaction(), vpFeaturePoint::interaction(), vpFeaturePoint3D::interaction(), vpFeaturePointPolar::interaction(), vpFeatureSegment::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(), error(), vpFeatureLuminance::error(), vpFeatureLuminanceMapping::error(), vpFeatureDepth::get_LogZoverZstar(), vpFeaturePointPolar::get_rho(), vpBasicFeature::get_s(), 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(), vpFeatureSegment::init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), 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(), vpFeatureSegment::print(), vpFeatureThetaU::print(), vpFeatureTranslation::print(), print(), vpFeatureDepth::set_LogZoverZstar(), vpFeaturePointPolar::set_rho(), 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().