Visual Servoing Platform  version 3.6.1 under development (2024-04-19)
vpFeaturePointPolar Class Reference

#include <visp3/visual_features/vpFeaturePointPolar.h>

+ Inheritance diagram for vpFeaturePointPolar:

Public Types

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

Public Member Functions

 vpFeaturePointPolar ()
 
void buildFrom (double rho, double theta, 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
 
vpFeaturePointPolarduplicate () const vp_override
 
vpColVector error (const vpBasicFeature &s_star, unsigned int select=FEATURE_ALL) vp_override
 
void init () vp_override
 
double get_rho () const
 
double get_theta () const
 
double get_Z () const
 
vpMatrix interaction (unsigned int select=FEATURE_ALL) vp_override
 
void print (unsigned int select=FEATURE_ALL) const vp_override
 
void set_rho (double rho)
 
void set_theta (double theta)
 
void set_Z (double Z)
 
void set_rhoThetaZ (double rho, double theta, double Z)
 

Static Public Member Functions

static unsigned int selectRho ()
 
static unsigned int selectTheta ()
 

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 2D image point visual feature with polar coordinates $(\rho,\theta)$ described in [10].

Let us denote $(\rho,\theta)$ the polar coordinates of an image point, with $\rho$ the radius of the feature point with respect to the optical center and $\theta$ the angle. From cartesian coordinates $(x,y)$ of a image point, polar coordinates are obtained by:

\[\rho = \sqrt{x^2+y^2} \hbox{,}\; \; \theta = \arctan \frac{y}{x}\]

From polar coordinates, cartesian coordinates of the feature point can be obtained by:

\[x = \rho \cos\theta \hbox{,}\; \; y = \rho \sin\theta\]

This class is intended to manipulate the 2D image point visual feature in polar coordinates $ s = (\rho, \theta) $. The interaction matrix related to $ s $ is given by:

\[ L = \left[ \begin{array}{l} L_{\rho} \\ \; \\ L_{\theta}\\ \end{array} \right] = \left[ \begin{array}{cccccc} \frac{-\cos \theta}{Z} & \frac{-\sin \theta}{Z} & \frac{\rho}{Z} & (1+\rho^2)\sin\theta& -(1+\rho^2)\cos\theta & 0 \\ \;\\ \ \frac{\sin\theta}{\rho Z} & \frac{-\cos\theta}{\rho Z} & 0 & \cos\theta /\rho & \sin\theta/\rho & -1 \\ \end{array} \right] \]

where $Z$ is the 3D depth of the considered point in the camera frame.

Two ways are allowed to initialize the feature.

The interaction() method allows to compute the interaction matrix $L$ associated to the 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 four 2D point features with polar coordinates. First we create four current features $s$ (p var name in the code) and four desired $s^*$ (pd var name in the code) point features with polar coordinates, set the task to use the interaction matrix associated to the current 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 initialized at the beginning.

#include <visp3/core/vpPoint.h>
#include <visp3/visual_features/vpFeatureBuilder.h>
#include <visp3/visual_features/vpFeaturePointPolar.h>
#include <visp3/vs/vpServo.h>
int main()
{
// Create 4 points to specify the object of interest
vpPoint point[4];
// Set the 3D point coordinates in the object frame: oP
point[0].setWorldCoordinates(-0.1, -0.1, 0);
point[1].setWorldCoordinates( 0.1, -0.1, 0);
point[2].setWorldCoordinates( 0.1, 0.1, 0);
point[3].setWorldCoordinates(-0.1, 0.1, 0);
// Initialize the desired pose between the camera and the object frame
cMod.buildFrom(0, 0, 1, 0, 0, 0);
// Compute the desired position of the point
for (int i = 0 ; i < 4 ; i++) {
// Compute the 3D point coordinates in the camera frame cP = cMod * oP
point[i].changeFrame(cMod);
// Compute the perspective projection to set (x,y)
point[i].projection();
}
// Create 4 desired visual features as 2D points with polar coordinates
// Initialize the desired visual feature from the desired point positions
for (int i = 0 ; i < 4 ; i++)
vpFeatureBuilder::create(pd[i], point[i]);
// Initialize the current pose between the camera and the object frame
cMo.buildFrom(0, 0, 1.2, 0, 0, M_PI);
// ... cMo need here to be computed from a pose estimation
for (int i = 0 ; i < 4 ; i++) {
// Compute the 3D point coordinates in the camera frame cP = cMo * oP
point[i].changeFrame(cMo);
// Compute the perspective projection to set (x,y)
point[i].projection();
}
// Create 4 current visual features as 2D points with polar coordinates
// Initialize the current visual feature from the current point positions
for (int i = 0 ; i < 4 ; i++)
vpFeatureBuilder::create(p[i], point[i]);
// Visual servo task initialization
vpServo task;
// - Camera is mounted on the robot end-effector and velocities are
// computed in the camera frame
// - Interaction matrix is computed with the current visual features s
// - Set the constant gain to 1
task.setLambda(1);
// - Add current and desired features
for (int i = 0 ; i < 4 ; i++)
task.addFeature(p[i], pd[i]);
// Control loop
for ( ; ; ) {
// ... cMo need here to be estimated from for example a pose estimation.
// Computes the point coordinates in the camera frame and its 2D
// coordinates in the image plane
for (int i = 0 ; i < 4 ; i++)
point[i].track(cMo) ;
// Update the current 2D point visual feature with polar coordinates
for (int i = 0 ; i < 4 ; i++)
vpFeatureBuilder::create(p[i], point[i]);
// compute the control law
vpColVector v = task.computeControlLaw(); // camera velocity
}
}
Implementation of column vector and the associated operations.
Definition: vpColVector.h:163
static void create(vpFeaturePoint &s, const vpCameraParameters &cam, const vpDot &d)
Class that defines 2D image point visual feature with polar coordinates described in .
Implementation of an homogeneous matrix and operations on such kind of matrices.
void buildFrom(const vpTranslationVector &t, const vpRotationMatrix &R)
Class that defines a 3D point in the object frame and allows forward projection of a 3D point in the ...
Definition: vpPoint.h:77
void projection(const vpColVector &_cP, vpColVector &_p) const vp_override
Definition: vpPoint.cpp:225
void changeFrame(const vpHomogeneousMatrix &cMo, vpColVector &cP) const vp_override
Definition: vpPoint.cpp:242
void setWorldCoordinates(double oX, double oY, double oZ)
Definition: vpPoint.cpp:110
void setInteractionMatrixType(const vpServoIteractionMatrixType &interactionMatrixType, const vpServoInversionType &interactionMatrixInversion=PSEUDO_INVERSE)
Definition: vpServo.cpp:378
@ EYEINHAND_CAMERA
Definition: vpServo.h:155
void addFeature(vpBasicFeature &s_cur, vpBasicFeature &s_star, unsigned int select=vpBasicFeature::FEATURE_ALL)
Definition: vpServo.cpp:329
void setLambda(double c)
Definition: vpServo.h:976
void setServo(const vpServoType &servo_type)
Definition: vpServo.cpp:132
vpColVector computeControlLaw()
Definition: vpServo.cpp:703
@ CURRENT
Definition: vpServo.h:196

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

// Add the rho subset feature from the 2D point polar coordinates visual features
static unsigned int selectRho()

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

#include <visp3/core/vpMatrix.h>
#include <visp3/visual_features/vpFeaturePointPolar.h>
int main()
{
// Creation of the current feature s
// Initialize the current feature
s.buildFrom(0.1, M_PI, 1); // rho=0.1m, theta=pi, Z=1m
// Creation of the desired feature s
// Initialize the desired feature
s.buildFrom(0.15, 0, 0.8); // rho=0.15m, theta=0, Z=0.8m
// Compute the interaction matrix L_s for the current feature
vpMatrix L = s.interaction();
// Compute the error vector (s-s*) for the point feature with polar coordinates
s.error(s_star);
return 0;
}
vpColVector s
State of the visual feature.
Implementation of a matrix and operations on matrices.
Definition: vpMatrix.h:146
Examples
servoSimuFourPoints2DPolarCamVelocityDisplay.cpp, and simulateFourPoints2DPolarCamVelocity.cpp.

Definition at line 251 of file vpFeaturePointPolar.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

◆ vpFeaturePointPolar()

vpFeaturePointPolar::vpFeaturePointPolar ( )

Default constructor that build a 2D point visual feature with polar coordinates and initialize it to $(\rho, \theta) = (0, 0)$.

The 3D depth of the point requested in the interaction matrix (see interaction()) is initialized to $Z=1$.

Definition at line 99 of file vpFeaturePointPolar.cpp.

References init().

Referenced by duplicate().

Member Function Documentation

◆ buildFrom()

void vpFeaturePointPolar::buildFrom ( double  rho,
double  theta,
double  Z_ 
)

Build a 2D image point visual feature with polar coordinates.

Parameters
rho,theta: Polar coordinates $(\rho,\theta)$ of the image point.
Z_: 3D depth of the point in the camera frame.
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.

Definition at line 467 of file vpFeaturePointPolar.cpp.

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

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

◆ display() [1/2]

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

Display image point feature.

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

Implements vpBasicFeature.

Definition at line 503 of file vpFeaturePointPolar.cpp.

References vpFeatureDisplay::displayPoint(), get_rho(), get_theta(), and vpERROR_TRACE.

◆ display() [2/2]

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

Display image point feature.

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

Implements vpBasicFeature.

Definition at line 532 of file vpFeaturePointPolar.cpp.

References vpFeatureDisplay::displayPoint(), get_rho(), get_theta(), and vpERROR_TRACE.

◆ duplicate()

vpFeaturePointPolar * vpFeaturePointPolar::duplicate ( ) const
virtual

Create an object with the same type.

s_star = s.duplicate(); // s_star is now a vpFeaturePointPolar
class that defines what is a visual feature

Implements vpBasicFeature.

Definition at line 563 of file vpFeaturePointPolar.cpp.

References vpFeaturePointPolar().

◆ error()

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

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

Parameters
s_star: Desired 2D image point visual feature with polar coordinates.
select: The error can be computed for a selection of a subset of the possible 2D point polar 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 polar coordinate feature $(\rho,\theta)$ use one of the corresponding function selectRho() or selectTheta(). 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 $\rho$ component.

// Creation of the current feature s
s.buildFrom(0.2, ..., 1); // rho and Z need to be set
// Build the interaction matrix L associated to rho component
vpMatrix L_rho = s.interaction( vpFeaturePointPolar::selectRho() );
// Creation of the desired feature s*
s_star.buildFrom(0.45, ..., 1.2); // rho and Z need to be set
// Compute the error vector (s-s*) for the rho feature
void buildFrom(double rho, double theta, double Z)

Reimplemented from vpBasicFeature.

Definition at line 382 of file vpFeaturePointPolar.cpp.

References vpBasicFeature::s, selectRho(), selectTheta(), and vpColVector::stack().

◆ get_rho()

double vpFeaturePointPolar::get_rho ( ) const

Get the image point $\rho$ polar coordinate.

See also
get_theta()
Examples
servoSimuFourPoints2DPolarCamVelocityDisplay.cpp.

Definition at line 157 of file vpFeaturePointPolar.cpp.

References vpBasicFeature::s.

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

◆ get_s()

◆ get_theta()

double vpFeaturePointPolar::get_theta ( ) const

Get the image point $\theta$ polar coordinate.

See also
get_rho()
Examples
servoSimuFourPoints2DPolarCamVelocityDisplay.cpp.

Definition at line 164 of file vpFeaturePointPolar.cpp.

References vpBasicFeature::s.

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

◆ get_Z()

double vpFeaturePointPolar::get_Z ( ) const

Get the 3D point depth in the camera frame.

Definition at line 169 of file vpFeaturePointPolar.cpp.

Referenced by vpFeatureBuilder::create(), interaction(), and print().

◆ getDeallocate()

vpBasicFeatureDeallocatorType vpBasicFeature::getDeallocate ( )
inlineinherited

Definition at line 121 of file vpBasicFeature.h.

◆ getDimension()

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

Get the feature vector dimension.

Definition at line 99 of file vpBasicFeature.cpp.

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

◆ init()

void vpFeaturePointPolar::init ( void  )
virtual

Initialise the memory space requested for a 2D point visual feature with polar coordinates.

By default this feature is initialized to $(\rho, \theta) = (0, 0)$. The 3D depth of the point requested in the interaction matrix (see interaction()) is initialized to $Z=1$.

Implements vpBasicFeature.

Definition at line 72 of file vpFeaturePointPolar.cpp.

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

Referenced by vpFeaturePointPolar().

◆ interaction()

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

Compute and return the interaction matrix $ L $ associated to a subset of the possible 2D image point features with polar coordinates $(\rho,\theta)$.

\[ L = \left[ \begin{array}{l} L_{\rho} \\ \; \\ L_{\theta}\\ \end{array} \right] = \left[ \begin{array}{cccccc} \frac{-\cos \theta}{Z} & \frac{-\sin \theta}{Z} & \frac{\rho}{Z} & (1+\rho^2)\sin\theta & -(1+\rho^2)\cos\theta & 0 \\ \; \\ \frac{\sin\theta}{\rho Z} & \frac{-\cos\theta}{\rho Z} & 0 & \cos\theta /\rho & \sin\theta/\rho & -1 \\ \end{array} \right] \]

where $Z$ is the 3D depth of the considered point.

Parameters
select: Selection of a subset of the possible polar point coordinate features.
  • To compute the interaction matrix for all the two subset features $(\rho,\theta)$ use vpBasicFeature::FEATURE_ALL. In that case the dimension of the interaction matrix is $ [2 \times 6] $
  • To compute the interaction matrix for only one of the subset ( $\rho,\theta$) use one of the corresponding function selectRho() or selectTheta(). In that case the returned interaction matrix is $ [1 \times 6] $ dimension.
Returns
The interaction matrix computed from the 2D point polar coordinate features.
Exceptions
vpFeatureException::badInitializationError: If the point is behind the camera $(Z < 0)$, or if the 3D depth is null $(Z = 0)$, or if the $\rho$ polar coordinate of the point is null.

The code below shows how to compute the interaction matrix associated to the visual feature $s = (\rho,\theta)$.

double rho = 0.3;
double theta = M_PI;
double Z = 1;
// Creation of the current feature s
s.buildFrom(rho, theta, Z);
// Build the interaction matrix L_s
vpMatrix L = s.interaction();

The interaction matrix could also be build by:

In both cases, L is a 2 by 6 matrix. The first line corresponds to the $\rho$ visual feature while the second one to the $\theta$ visual feature.

It is also possible to build the interaction matrix associated to one of the possible features. The code below shows how to consider only the $\theta$ component.

vpMatrix L_theta = s.interaction( vpFeaturePointPolar::selectTheta() );
static unsigned int selectTheta()

In that case, L_theta is a 1 by 6 matrix.

Implements vpBasicFeature.

Definition at line 245 of file vpFeaturePointPolar.cpp.

References vpFeatureException::badInitializationError, vpBasicFeature::deallocate, vpBasicFeature::flags, get_rho(), get_theta(), get_Z(), vpBasicFeature::nbParameters, vpBasicFeature::resetFlags(), selectRho(), selectTheta(), vpMatrix::stack(), vpBasicFeature::user, vpERROR_TRACE, 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.

◆ print()

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

Print to stdout the values of the current visual feature.

Parameters
select: Selection of a subset of the possible 2D image point feature coordinates.
// Creation of the current feature s
s.buildFrom(0.1, M_PI_2, 1.3);
s.print(); // print all the 2 components of the image point feature
s.print(vpBasicFeature::FEATURE_ALL); // same behavior then previous line
s.print(vpFeaturePointPolar::selectRho()); // print only the rho component
int print(std::ostream &s, unsigned int length, char const *intro=0) const

Implements vpBasicFeature.

Definition at line 439 of file vpFeaturePointPolar.cpp.

References get_rho(), get_theta(), get_Z(), selectRho(), and selectTheta().

◆ resetFlags()

◆ selectAll()

static unsigned int vpBasicFeature::selectAll ( )
inlinestaticinherited

Select all the features.

Definition at line 140 of file vpBasicFeature.h.

◆ selectRho()

unsigned int vpFeaturePointPolar::selectRho ( )
static

Function used to select the $\rho$ subset polar coordinate of the image point visual feature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $\rho$ 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 only the rho subset coordinate feature from an image point to the
See also
selectTheta()

Definition at line 592 of file vpFeaturePointPolar.cpp.

References vpBasicFeature::FEATURE_LINE.

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

◆ selectTheta()

unsigned int vpFeaturePointPolar::selectTheta ( )
static

Function used to select the $\theta$ subset polar coordinate of the image point visual feature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $\theta$ 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 only the theta subset coordinate feature from an image point to the
See also
selectRho()

Definition at line 616 of file vpFeaturePointPolar.cpp.

References vpBasicFeature::FEATURE_LINE.

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

◆ set_rho()

void vpFeaturePointPolar::set_rho ( double  rho)

Set the image point $\rho$ polar coordinate.

See also
set_theta()

Definition at line 106 of file vpFeaturePointPolar.cpp.

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

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

◆ set_rhoThetaZ()

void vpFeaturePointPolar::set_rhoThetaZ ( double  rho,
double  theta,
double  Z_ 
)

Initialize the image point visual feature with polar coordinates.

Parameters
rho,theta: Polar coordinates $(\rho,\theta)$ of the image point.
Z_: 3D depth of the point in the camera frame.
See also
set_rho(), set_theta(), set_Z()

Definition at line 142 of file vpFeaturePointPolar.cpp.

References vpBasicFeature::flags, vpBasicFeature::nbParameters, set_rho(), set_theta(), and set_Z().

◆ set_theta()

void vpFeaturePointPolar::set_theta ( double  theta)

Set the image point $\theta$ polar coordinate.

See also
set_rho()

Definition at line 116 of file vpFeaturePointPolar.cpp.

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

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

◆ set_Z()

void vpFeaturePointPolar::set_Z ( double  Z_)

Set the 3D point depth in the camera frame.

Definition at line 126 of file vpFeaturePointPolar.cpp.

References vpBasicFeature::flags.

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

◆ setDeallocate()

void vpBasicFeature::setDeallocate ( vpBasicFeatureDeallocatorType  d)
inlineinherited

Definition at line 135 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 139 of file vpBasicFeature.cpp.

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

Member Data Documentation

◆ deallocate

◆ dim_s

◆ FEATURE_LINE

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

Definition at line 79 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(), vpFeatureSegment::selectAlpha(), vpFeatureVanishingPoint::selectAlpha(), vpFeatureVanishingPoint::selectAtanOneOverRho(), vpFeatureSegment::selectL(), vpFeatureEllipse::selectMu02(), vpFeatureEllipse::selectMu11(), vpFeatureEllipse::selectMu20(), vpFeatureVanishingPoint::selectOneOverRho(), vpFeatureLine::selectRho(), selectRho(), vpFeatureLine::selectTheta(), 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 96 of file vpBasicFeature.h.

Referenced by vpFeatureTranslation::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeatureLine::buildFrom(), buildFrom(), vpFeatureEllipse::buildFrom(), vpFeaturePoint::buildFrom(), vpFeatureDepth::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeatureMoment::duplicate(), vpFeatureDepth::init(), vpFeatureEllipse::init(), vpFeatureLine::init(), vpFeatureLuminance::init(), vpFeaturePoint::init(), vpFeaturePoint3D::init(), init(), vpFeatureSegment::init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), vpFeatureMoment::init(), vpFeatureVanishingPoint::interaction(), vpFeatureDepth::interaction(), vpFeatureEllipse::interaction(), vpFeatureLine::interaction(), vpFeaturePoint::interaction(), vpFeaturePoint3D::interaction(), interaction(), vpFeatureSegment::interaction(), vpFeatureThetaU::interaction(), vpFeatureTranslation::interaction(), vpBasicFeature::operator=(), vpBasicFeature::resetFlags(), set_rho(), set_rhoThetaZ(), 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(), 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 90 of file vpBasicFeature.h.

Referenced by vpFeatureTranslation::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeatureLine::buildFrom(), buildFrom(), vpFeatureEllipse::buildFrom(), vpFeaturePoint::buildFrom(), vpFeatureDepth::buildFrom(), vpFeatureLuminance::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeatureEllipse::display(), vpFeatureMoment::duplicate(), vpFeatureVanishingPoint::error(), vpBasicFeature::error(), vpFeatureDepth::error(), vpFeatureEllipse::error(), vpFeatureLine::error(), vpFeatureMomentAlpha::error(), vpFeaturePoint::error(), vpFeaturePoint3D::error(), error(), vpFeatureThetaU::error(), vpFeatureTranslation::error(), vpGenericFeature::error(), vpFeatureLuminance::error(), vpFeatureDepth::get_LogZoverZstar(), get_rho(), vpBasicFeature::get_s(), vpGenericFeature::get_s(), 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(), init(), vpFeatureSegment::init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), vpGenericFeature::init(), vpFeatureLuminance::init(), vpFeatureMoment::init(), vpFeatureEllipse::interaction(), vpFeatureLine::interaction(), vpFeatureThetaU::interaction(), vpFeatureTranslation::interaction(), vpBasicFeature::operator=(), vpFeatureEllipse::print(), vpFeatureLine::print(), vpFeatureMoment::print(), vpFeatureSegment::print(), vpFeatureThetaU::print(), vpFeatureTranslation::print(), vpGenericFeature::print(), vpFeatureDepth::set_LogZoverZstar(), set_rho(), vpGenericFeature::set_s(), 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().