Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
vpFeaturePoint3D Class Reference

#include <vpFeaturePoint3D.h>

Inheritance diagram for vpFeaturePoint3D:

Public Types

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

Public Member Functions

 vpFeaturePoint3D ()
vpFeaturePoint3DbuildFrom (const vpPoint &p)
vpFeaturePoint3DbuildFrom (const double &X, const double &Y, const double &Z)
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
vpFeaturePoint3Dduplicate () const VP_OVERRIDE
vpColVector error (const vpBasicFeature &s_star, unsigned int select=FEATURE_ALL) VP_OVERRIDE
double get_X () const
double get_Y () const
double get_Z () 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 set_X (double X)
void set_Y (double Y)
void set_Z (double Z)
void set_XYZ (double X, double Y, double Z)

Static Public Member Functions

static unsigned int selectX ()
static unsigned int selectY ()
static unsigned int selectZ ()

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 the 3D point visual feature.

A 3D point visual feature corresponds to a 3D point with ${\bf X} = (X,Y,Z)$ coordinates in the camera frame.

This class is intended to manipulate the 3D point visual feature $ s = (X,Y,Z) $. The interaction matrix related to $ s $ is given by:

\‍[ L = \left[ \begin{array}{rrrrrr}
-1 &  0 &  0 &  0 & -Z &  Y \\
 0 & -1 &  0 &  Z &  0 & -X \\
 0 &  0 & -1 & -Y &  X &  0 \\
\end{array}
\right]
\‍]

Two ways are allowed to initialize the feature.

The interaction() method allows to compute the interaction matrix $ L$ associated to the 3D point visual feature, while the error() method computes the error vector $ (s - s^*)$ between the current visual feature and the desired one.

The code below shows how to create a eye-in hand visual servoing task using a 3D point feature $(X,Y,Z)$ that correspond to the 3D point coordinates in the camera frame. To control six degrees of freedom, at least three other features must be considered like vpFeatureThetaU visual features. First we create a current ( $s$) and desired ( $s^*$) 3D point feature, set the task to use the interaction matrix associated to the desired feature $L_{s^*}$ and than compute the camera velocity $v=-\lambda \; {L_{s^*}}^+ \;
(s-s^*)$. The current feature $s$ is updated in the while() loop while $s^*$ is set to $Z^*=1$.

#include <iostream>
#include <visp3/core/vpHomogeneousMatrix.h>
#include <visp3/visual_features/vpFeaturePoint3D.h>
#include <visp3/vs/vpServo.h>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpServo task; // Visual servoing task
// Set the 3D point coordinates in the object frame: oP
vpPoint point(0.1, -0.1, 0);
vpHomogeneousMatrix cMo; // Pose between the camera and the object frame
cMo.buildFrom(0, 0, 1.2, 0, 0, 0);
// ... cMo need here to be computed from a pose estimation
point.changeFrame(cMo); // Compute the 3D point coordinates in the camera frame cP = cMo * oP
// Creation of the current feature s
s.buildFrom(point); // Initialize the feature from the 3D point coordinates in the camera frame: s=(X,Y,Z)
s.print();
// Creation of the desired feature s*.
s_star.buildFrom(0, 0, 1); // Z*=1 meter
s_star.print();
// Set eye-in-hand control law.
// The computed velocities will be expressed in the camera frame
task.setServo(vpServo::EYEINHAND_CAMERA);
// Interaction matrix is computed with the desired visual features s*
task.setInteractionMatrixType(vpServo::DESIRED);
// Set the constant gain
double lambda = 0.8;
task.setLambda(lambda);
// Add the 3D point feature to the task
task.addFeature(s, s_star);
// Control loop
for ( ; ; ) {
// ... cMo need here to be estimated from for example a pose estimation.
point.changeFrame(cMo); // Compute the 3D point coordinates in the camera frame cP = cMo * oP
// Update the current 3D point visual feature
s.buildFrom(point);
// compute the control law
vpColVector v = task.computeControlLaw(); // camera velocity
}
}
vpColVector s
State of the visual feature.
Implementation of column vector and the associated operations.
vpFeaturePoint3D & buildFrom(const vpPoint &p)
void print(unsigned int select=FEATURE_ALL) const VP_OVERRIDE
Implementation of an homogeneous matrix and operations on such kind of matrices.
Class that defines a 3D point in the object frame and allows forward projection of a 3D point in the ...
Definition vpPoint.h:79
@ EYEINHAND_CAMERA
Definition vpServo.h:176
@ DESIRED
Definition vpServo.h:223

If you want to deal only with the $(X,Y)$ subset feature from the 3D point feature, you have just to modify the addFeature() call in the previous example by the following line. In that case, the dimension of $s$ is two.

// Add the (X,Y) subset feature from the 3D point visual feature to the task
task.addFeature(s, s_star, vpFeaturePoint3D::selectX() | vpFeaturePoint3D::selectY());
static unsigned int selectX()
static unsigned int selectY()

If you want to build your own control law, this other example shows how to create a current ( $s$) and desired ( $s^*$) 3D point visual feature, compute the corresponding error vector $(s-s^*)$ and finally build the interaction matrix $L_s$.

#include <iostream>
#include <visp3/core/vpHomogeneousMatrix.h>
#include <visp3/core/vpMatrix.h>
#include <visp3/visual_features/vpFeaturePoint3D.h>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
// Set the 3D point coordinates in the object frame: oP
vpPoint point(0.1, -0.1, 0);
vpHomogeneousMatrix cMo; // Pose between the camera and the object frame
cMo.buildFrom(0, 0, 1.2, 0, 0, 0);
// ... cMo need here to be computed from a pose estimation
point.changeFrame(cMo); // Compute the 3D point coordinates in the camera frame cP = cMo * oP
// Creation of the current feature s
s.buildFrom(point); // Initialize the feature from the 3D point coordinates in the camera frame
s.print();
// Creation of the desired feature s*.
s_star.buildFrom(0, 0, 1); // Z*=1 meter
s_star.print();
// Compute the L_s interaction matrix associated to the current feature
vpMatrix L = s.interaction();
std::cout << "L: " << L << std::endl;
// Compute the error vector (s-s*) for the 3D point feature
vpColVector e = s.error(s_star); // e = (s-s*)
std::cout << "e: " << e << std::endl;
}
Implementation of a matrix and operations on matrices.
Definition vpMatrix.h:175
Examples
mbot-apriltag-pbvs.cpp, servoSimuPoint2DhalfCamVelocity1.cpp, and servoSimuPoint3DCamVelocity.cpp.

Definition at line 211 of file vpFeaturePoint3D.h.

Member Enumeration Documentation

◆ vpBasicFeatureDeallocatorType

Indicates who should deallocate the feature.

Enumerator
user 
vpServo 

Definition at line 86 of file vpBasicFeature.h.

◆ vpBasicFeatureSelect

Enumerator
FEATURE_ALL 

Definition at line 81 of file vpBasicFeature.h.

Constructor & Destructor Documentation

◆ vpFeaturePoint3D()

vpFeaturePoint3D::vpFeaturePoint3D ( )

Default constructor that build a 3D point visual feature and initialize it to ${\bf X} = (0, 0, 1)$.

Definition at line 84 of file vpFeaturePoint3D.cpp.

References init().

Referenced by buildFrom(), buildFrom(), and duplicate().

Member Function Documentation

◆ buildFrom() [1/2]

vpFeaturePoint3D & vpFeaturePoint3D::buildFrom ( const double & X,
const double & Y,
const double & Z )

Build a 3D point visual feature from the camera frame coordinates $ (X,Y,Z) $ of a point.

Parameters
X: $ X $ coordinate of a 3D point in the camera frame.
Y: $ Y $ coordinate of a 3D point in the camera frame.
Z: $ Z $ coordinate of a 3D point in the camera frame.
Exceptions
vpFeatureException::badInitializationErrorIf the depth ( $Z$ coordinate) is negative. That means that the 3D point is on the camera which is not possible.
vpFeatureException::badInitializationErrorIf the depth ( $Z$ coordinate) is null. That means that the 3D point is on the camera which is not possible.

Definition at line 448 of file vpFeaturePoint3D.cpp.

References vpFeatureException::badInitializationError, vpBasicFeature::flags, vpBasicFeature::nbParameters, vpBasicFeature::s, vpERROR_TRACE, and vpFeaturePoint3D().

◆ buildFrom() [2/2]

vpFeaturePoint3D & vpFeaturePoint3D::buildFrom ( const vpPoint & p)

Build a 3D point visual feature from the camera frame coordinates $(X,Y,Z)$ of a point.

Parameters
p: A point with camera frame coordinates ${^c}P=(X,Y,Z)$ up to date (see vpPoint class).
Exceptions
vpFeatureException::badInitializationErrorIf the depth ( $Z$ coordinate) is negative. That means that the 3D point is behind the camera which is not possible.
vpFeatureException::badInitializationErrorIf the depth ( $Z$ coordinate) is null. That means that the 3D point is on the camera which is not possible.
Examples
mbot-apriltag-pbvs.cpp.

Definition at line 401 of file vpFeaturePoint3D.cpp.

References vpFeatureException::badInitializationError, vpBasicFeature::flags, vpBasicFeature::nbParameters, vpBasicFeature::s, vpERROR_TRACE, and vpFeaturePoint3D().

◆ dimension_s()

unsigned int vpBasicFeature::dimension_s ( )
inlineinherited

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

Definition at line 108 of file vpBasicFeature.h.

References dim_s.

◆ display() [1/2]

void vpFeaturePoint3D::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 531 of file vpFeaturePoint3D.cpp.

References vpERROR_TRACE.

◆ display() [2/2]

void vpFeaturePoint3D::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 548 of file vpFeaturePoint3D.cpp.

References vpERROR_TRACE.

◆ duplicate()

vpFeaturePoint3D * vpFeaturePoint3D::duplicate ( ) const
virtual

Create an object with the same type.

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

Implements vpBasicFeature.

Definition at line 521 of file vpFeaturePoint3D.cpp.

References vpFeaturePoint3D().

◆ error()

vpColVector vpFeaturePoint3D::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.

Parameters
s_star: Desired 3D point visual feature.
select: The error can be computed for a selection of a subset of the possible 3D point coordinate features.
  • To compute the error for all the three coordinates use vpBasicFeature::FEATURE_ALL. In that case the error vector is a 3 dimension column vector.
  • To compute the error for only one of the coordinate feature $(X,Y, or Z)$ use one of the corresponding function selectX(), selectY() or selectZ(). In that case the error vector is a 1 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 $Z $ subset:

// Creation of the current feature s
s.set_Z(0.8); // Initialization of the current Z feature
// Creation of the desired feature s*.
s_star.set_Z(1); // Initialization of the current Z* feature to Z*=1 meter
// Compute the interaction matrix for the Z coordinate feature
vpMatrix L_Z = s.interaction( vpFeaturePoint3D::selectZ() );
// Compute the error vector (s-s*) for the Z feature
s.error(s_star, vpFeaturePoint3D::selectZ());
static unsigned int selectZ()
Class that defines the translation visual feature .

To manipulate the subset features $s=(Y, Z)$, the code becomes:

// Compute the interaction matrix for the Y, Z feature coordinates
vpMatrix L_YZ = s.interaction( vpFeaturePoint3D::selectY() |
// Compute the error vector e = (s-s*) for the Y, Z feature coordinates

Reimplemented from vpBasicFeature.

Definition at line 354 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::s, selectX(), selectY(), selectZ(), vpColVector::stack(), and vpBasicFeature::vpBasicFeature().

◆ get_s()

vpColVector vpBasicFeature::get_s ( unsigned int select = FEATURE_ALL) const
inherited

◆ get_X()

double vpFeaturePoint3D::get_X ( ) const

Return the $X$ coordinate in the camera frame of the 3D point.

Definition at line 151 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::s.

Referenced by interaction(), and print().

◆ get_Y()

double vpFeaturePoint3D::get_Y ( ) const

Return the $Y$ coordinate in the camera frame of the 3D point.

Definition at line 154 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::s.

Referenced by interaction(), and print().

◆ get_Z()

double vpFeaturePoint3D::get_Z ( ) const

Return the $Z$ coordinate in the camera frame of the 3D point.

Definition at line 157 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::s.

Referenced by interaction(), and print().

◆ getDeallocate()

vpBasicFeatureDeallocatorType vpBasicFeature::getDeallocate ( )
inlineinherited

Definition at line 121 of file vpBasicFeature.h.

References deallocate.

◆ 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 dim_s, FEATURE_LINE, and s.

◆ init()

BEGIN_VISP_NAMESPACE void vpFeaturePoint3D::init ( void )
virtual

Initialise the memory space requested for a 3D point visual feature.

By default this feature is initialized to ${\bf X} = (0, 0, 1)$.

Implements vpBasicFeature.

Definition at line 59 of file vpFeaturePoint3D.cpp.

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

Referenced by vpFeaturePoint3D().

◆ interaction()

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

Compute and return the interaction matrix $ L $ associated to a subset of the possible 3D point features $(X,Y,Z)$ that represent the 3D point coordinates expressed in the camera frame.

\‍[L = \left[
\begin{array}{rrrrrr}
-1 &  0 &  0 &  0 & -Z &  Y \\
 0 & -1 &  0 &  Z &  0 & -X \\
 0 &  0 & -1 & -Y &  X &  0 \\
\end{array}
\right]
\‍]

Parameters
select: Selection of a subset of the possible 3D point coordinate features.
  • To compute the interaction matrix for all the three subset features $(X,Y,Z)$ use vpBasicFeature::FEATURE_ALL. In that case the dimension of the interaction matrix is $ [3 \times
  6] $
  • To compute the interaction matrix for only one of the subset ( $X, Y,Z$) use one of the corresponding function selectX(), selectY() or selectZ(). In that case the returned interaction matrix is $ [1
  \times 6] $ dimension.
Returns
The interaction matrix computed from the 3D point coordinate features.

The code below shows how to compute the interaction matrix associated to the visual feature $s = X $.

vpPoint point;
...
// Creation of the current feature s
vpFeaturePoint3D s;
s.buildFrom(point);
vpMatrix L_X = s.interaction( vpFeaturePoint3D::selectX() );

The code below shows how to compute the interaction matrix associated to the $s = (X,Y) $ subset visual feature:

L_XY is here now a 2 by 6 matrix. The first line corresponds to the $ X $ visual feature while the second one to the $Y $ visual feature.

It is also possible to build the interaction matrix from all the 3D point coordinates by:

In that case, L_XYZ is a 3 by 6 interaction matrix where the last line corresponds to the $ Z $ visual feature.

Implements vpBasicFeature.

Definition at line 226 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::deallocate, vpBasicFeature::flags, get_X(), get_Y(), get_Z(), vpBasicFeature::nbParameters, vpBasicFeature::resetFlags(), vpArray2D< Type >::resize(), selectX(), selectY(), selectZ(), vpMatrix::stack(), vpBasicFeature::user, and vpTRACE.

◆ operator[]()

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

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

Definition at line 128 of file vpBasicFeature.h.

References s.

◆ print()

void vpFeaturePoint3D::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 3D point feature coordinates.
vpPoint point;
// Creation of the current feature s
s.buildFrom(point);
s.print(); // print all the 3 components of the translation feature
s.print(vpBasicFeature::FEATURE_ALL); // same behavior then previous line
s.print(vpFeaturePoint3D::selectZ()); // print only the Z component

Implements vpBasicFeature.

Definition at line 497 of file vpFeaturePoint3D.cpp.

References get_X(), get_Y(), get_Z(), selectX(), selectY(), and selectZ().

◆ resetFlags()

◆ selectAll()

unsigned int vpBasicFeature::selectAll ( )
inlinestaticinherited

Select all the features.

Examples
testPoint.cpp.

Definition at line 140 of file vpBasicFeature.h.

References FEATURE_ALL.

◆ selectX()

unsigned int vpFeaturePoint3D::selectX ( )
static

Function used to select the $ X$ subset coordinate of the 3D point visual feature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $ X$ 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:

vpServo task;
...
// Add the (X,Y) subset coordinates features from a 3D point to the task
task.addFeature(p, vpFeaturePoint3D::selectX() |
See also
selectY(), selectZ()
Examples
mbot-apriltag-pbvs.cpp.

Definition at line 585 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::FEATURE_LINE.

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

◆ selectY()

unsigned int vpFeaturePoint3D::selectY ( )
static

Function used to select the $ Y$ subset coordinate of the 3D point visual feature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $ Y$ 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:

vpServo task;
...
// Add the (X,Y) subset coordinates features from a 3D point to the task
task.addFeature(p, vpFeaturePoint3D::selectX() |
See also
selectX(), selectZ()

Definition at line 612 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::FEATURE_LINE.

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

◆ selectZ()

unsigned int vpFeaturePoint3D::selectZ ( )
static

Function used to select the $ Z$ subset coordinate of the 3D point visual feature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $ Z$ 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:

vpServo task;
...
// Add the (Z) subset coordinate feature from a 3D point to the task
task.addFeature(p, vpFeaturePoint3D::selectZ());
See also
selectX(), selectY()
Examples
mbot-apriltag-pbvs.cpp, and servoSimuPoint2DhalfCamVelocity1.cpp.

Definition at line 638 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::FEATURE_LINE.

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

◆ set_X()

void vpFeaturePoint3D::set_X ( double X)

Initialise the $X$ coordinate in the camera frame of the 3D Point visual feature ${\bf X} = (X,Y,Z)$.

Parameters
X: $X$ coordinate of the visual feature.
See also
get_X()

Definition at line 95 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::flags, and vpBasicFeature::s.

Referenced by set_XYZ().

◆ set_XYZ()

void vpFeaturePoint3D::set_XYZ ( double X,
double Y,
double Z )

Initialize the 3D point coordinates.

Parameters
X: $ X $ coordinate in the camera frame of the 3D point visual feature.
Y: $ Y $ coordinate in the camera frame of the 3D point visual feature.
Z: $ Z $ coordinate in the camera frame of the 3D point visual feature.
See also
set_X(), set_Y(), set_Z()
Examples
mbot-apriltag-pbvs.cpp, and servoSimuPoint3DCamVelocity.cpp.

Definition at line 140 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::flags, vpBasicFeature::nbParameters, set_X(), set_Y(), and set_Z().

◆ set_Y()

void vpFeaturePoint3D::set_Y ( double Y)

Initialise the $Y$ coordinate in the camera frame of the 3D Point visual feature ${\bf X} = (X,Y,Z)$.

Parameters
Y: $Y$ coordinate of the visual feature.
See also
get_Y()

Definition at line 110 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::flags, and vpBasicFeature::s.

Referenced by set_XYZ().

◆ set_Z()

void vpFeaturePoint3D::set_Z ( double Z)

Initialise the $Z$ coordinate in the camera frame of the 3D Point visual feature ${\bf X} = (X,Y,Z)$.

Parameters
Z: $Z$ coordinate or depth of the visual feature.
See also
get_Z()

Definition at line 125 of file vpFeaturePoint3D.cpp.

References vpBasicFeature::flags, and vpBasicFeature::s.

Referenced by set_XYZ().

◆ setDeallocate()

void vpBasicFeature::setDeallocate ( vpBasicFeatureDeallocatorType d)
inlineinherited

Definition at line 135 of file vpBasicFeature.h.

References deallocate.

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 140 of file vpBasicFeature.cpp.

References flags, and nbParameters.

Member Data Documentation

◆ deallocate

◆ dim_s

unsigned int vpBasicFeature::dim_s
protectedinherited

Dimension of the visual feature.

Definition at line 92 of file vpBasicFeature.h.

Referenced by dimension_s(), vpFeatureMoment::duplicate(), vpGenericFeature::duplicate(), error(), vpFeatureLuminance::error(), vpFeatureLuminanceMapping::error(), vpFeatureLuminanceMapping::error(), vpGenericFeature::error(), vpGenericFeature::error(), get_s(), vpGenericFeature::get_s(), vpGenericFeature::get_s(), vpGenericFeature::get_s(), vpGenericFeature::get_s(), getDimension(), vpFeatureMoment::getDimension(), vpFeatureDepth::init(), vpFeatureEllipse::init(), vpFeatureLine::init(), vpFeatureLuminance::init(), vpFeatureLuminanceMapping::init(), vpFeatureLuminanceMapping::init(), vpFeatureLuminanceMapping::init(), vpFeatureMoment::init(), vpFeaturePoint3D::init(), vpFeaturePoint::init(), vpFeaturePointPolar::init(), vpFeatureSegment::init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), vpFeatureLuminance::interaction(), vpFeatureLuminanceMapping::interaction(), vpFeatureLuminanceMapping::interaction(), vpFeatureMoment::interaction(), vpGenericFeature::interaction(), operator=(), vpFeatureLuminance::operator=(), vpFeatureLuminanceMapping::operator=(), vpFeatureMoment::print(), vpGenericFeature::print(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpGenericFeature::setError(), vpGenericFeature::setInteractionMatrix(), vpFeatureMoment::update(), vpBasicFeature(), vpBasicFeature(), vpFeatureLuminance::vpFeatureLuminance(), and vpGenericFeature::vpGenericFeature().

◆ FEATURE_LINE

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

Definition at line 45 of file vpBasicFeature.h.

Referenced by error(), vpGenericFeature::error(), vpGenericFeature::error(), get_s(), getDimension(), vpFeatureMoment::getDimension(), vpFeatureMoment::interaction(), vpGenericFeature::interaction(), vpFeatureMoment::print(), vpGenericFeature::print(), vpFeatureEllipse::select_n02(), vpFeatureEllipse::select_n11(), vpFeatureEllipse::select_n20(), vpFeatureSegment::selectAlpha(), vpFeatureVanishingPoint::selectAlpha(), vpFeatureVanishingPoint::selectAtanOneOverRho(), vpFeatureSegment::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(), vpFeatureEllipse::selectX(), vpFeaturePoint3D::selectX(), vpFeaturePoint::selectX(), vpFeatureVanishingPoint::selectX(), vpFeatureSegment::selectXc(), vpFeatureEllipse::selectY(), vpFeaturePoint3D::selectY(), vpFeaturePoint::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 96 of file vpBasicFeature.h.

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

◆ nbParameters

◆ s

vpColVector vpBasicFeature::s
protectedinherited

State of the visual feature.

Definition at line 90 of file vpBasicFeature.h.

Referenced by vpFeatureDepth::buildFrom(), vpFeatureEllipse::buildFrom(), vpFeatureEllipse::buildFrom(), vpFeatureLine::buildFrom(), vpFeatureLine::buildFrom(), vpFeatureLuminance::buildFrom(), vpFeatureLuminanceMapping::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeaturePoint::buildFrom(), vpFeaturePointPolar::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeatureTranslation::buildFrom(), vpFeatureEllipse::display(), vpFeatureEllipse::display(), vpFeatureMoment::duplicate(), error(), vpFeatureDepth::error(), vpFeatureEllipse::error(), vpFeatureLine::error(), vpFeatureLuminance::error(), vpFeatureLuminanceMapping::error(), vpFeatureMomentAlpha::error(), vpFeaturePoint3D::error(), vpFeaturePoint::error(), vpFeaturePointPolar::error(), vpFeatureThetaU::error(), vpFeatureTranslation::error(), vpFeatureVanishingPoint::error(), vpGenericFeature::error(), vpGenericFeature::error(), vpFeatureDepth::get_LogZoverZstar(), vpFeatureEllipse::get_n02(), vpFeatureEllipse::get_n11(), vpFeatureEllipse::get_n20(), vpFeaturePointPolar::get_rho(), get_s(), vpGenericFeature::get_s(), vpGenericFeature::get_s(), vpGenericFeature::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(), vpFeaturePoint3D::get_X(), vpFeatureEllipse::get_x(), vpFeaturePoint::get_x(), vpFeatureVanishingPoint::get_x(), vpFeaturePoint3D::get_Y(), vpFeatureEllipse::get_y(), vpFeaturePoint::get_y(), vpFeatureVanishingPoint::get_y(), vpFeaturePoint3D::get_Z(), vpFeatureSegment::getAlpha(), vpFeatureVanishingPoint::getAlpha(), vpFeatureVanishingPoint::getAtanOneOverRho(), getDimension(), vpFeatureSegment::getL(), vpFeatureEllipse::getMu02(), vpFeatureEllipse::getMu11(), vpFeatureEllipse::getMu20(), vpFeatureVanishingPoint::getOneOverRho(), vpFeatureLine::getRho(), vpFeatureLine::getTheta(), vpFeatureSegment::getXc(), vpFeatureSegment::getYc(), vpFeatureDepth::init(), vpFeatureEllipse::init(), vpFeatureLine::init(), vpFeatureLuminance::init(), vpFeatureLuminanceMapping::init(), vpFeatureLuminanceMapping::init(), vpFeatureMoment::init(), vpFeaturePoint3D::init(), vpFeaturePoint::init(), vpFeaturePointPolar::init(), vpFeatureSegment::init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), vpGenericFeature::init(), vpFeatureEllipse::interaction(), vpFeatureLine::interaction(), vpFeatureLuminanceMapping::interaction(), vpFeatureThetaU::interaction(), vpFeatureTranslation::interaction(), operator=(), vpFeatureLuminance::operator=(), vpFeatureLuminanceMapping::operator=(), operator[](), vpFeatureEllipse::print(), vpFeatureLine::print(), vpFeatureLuminanceMapping::print(), vpFeatureMoment::print(), vpFeatureSegment::print(), vpFeatureThetaU::print(), vpFeatureTranslation::print(), vpGenericFeature::print(), vpFeatureDepth::set_LogZoverZstar(), vpFeaturePointPolar::set_rho(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpFeaturePointPolar::set_theta(), vpFeatureThetaU::set_TUx(), vpFeatureThetaU::set_TUy(), vpFeatureThetaU::set_TUz(), vpFeatureTranslation::set_Tx(), vpFeatureTranslation::set_Ty(), vpFeatureTranslation::set_Tz(), vpFeaturePoint3D::set_X(), vpFeatureEllipse::set_x(), vpFeaturePoint::set_x(), vpFeatureVanishingPoint::set_x(), vpFeatureEllipse::set_xy(), vpFeaturePoint3D::set_Y(), vpFeatureEllipse::set_y(), vpFeaturePoint::set_y(), vpFeatureVanishingPoint::set_y(), vpFeaturePoint3D::set_Z(), vpFeatureSegment::setAlpha(), vpFeatureVanishingPoint::setAlpha(), vpFeatureVanishingPoint::setAtanOneOverRho(), vpFeatureSegment::setL(), vpFeatureEllipse::setMoments(), vpFeatureVanishingPoint::setOneOverRho(), vpFeatureLine::setRhoTheta(), vpFeatureSegment::setXc(), vpFeatureSegment::setYc(), vpFeatureMoment::update(), vpBasicFeature(), vpBasicFeature(), and vpGenericFeature::vpGenericFeature().