ViSP  2.8.0
vpFeatureLuminance Class Reference

#include <vpFeatureLuminance.h>

+ Inheritance diagram for vpFeatureLuminance:

Public Types

enum  vpBasicFeatureDeallocatorType { user, vpServo }
 

Public Member Functions

void buildFrom (vpImage< unsigned char > &I)
 
void init ()
 
void init (unsigned int _nbr, unsigned int _nbc, double _Z)
 
 vpFeatureLuminance ()
 
virtual ~vpFeatureLuminance ()
 
void setCameraParameters (vpCameraParameters &_cam)
 
void set_Z (const double Z)
 
double get_Z () const
 
vpMatrix interaction (const unsigned int select=FEATURE_ALL)
 
void interaction (vpMatrix &L)
 
vpColVector error (const vpBasicFeature &s_star, const unsigned int select=FEATURE_ALL)
 
void error (const vpBasicFeature &s_star, vpColVector &e)
 
void print (const unsigned int select=FEATURE_ALL) const
 
vpFeatureLuminanceduplicate () const
 
void display (const vpCameraParameters &cam, const vpImage< unsigned char > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const
 
void display (const vpCameraParameters &cam, const vpImage< vpRGBa > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const
 
vpColVector error (const unsigned int select=FEATURE_ALL)
 
unsigned int dimension_s ()
 
virtual double operator[] (const unsigned int i) const
 
vpColVector get_s (unsigned int select=FEATURE_ALL) const
 
unsigned int getDimension (const unsigned int select=FEATURE_ALL) const
 
void setFlags ()
 
void setDeallocate (vpBasicFeatureDeallocatorType d)
 
vpBasicFeatureDeallocatorType getDeallocate ()
 

Static Public Member Functions

static unsigned int selectAll ()
 

Public Attributes

vpCameraParameters cam
 

Static Public Attributes

static const unsigned int FEATURE_LINE [32]
 
static const unsigned int FEATURE_ALL = 0xffff
 

Protected Member Functions

void resetFlags ()
 

Protected Attributes

double Z
 
unsigned int nbr
 
unsigned int nbc
 
unsigned int bord
 
vpLuminancepixInfo
 
int firstTimeIn
 
vpColVector s
 
unsigned int dim_s
 
bool * flags
 
unsigned int nbParameters
 
vpBasicFeatureDeallocatorType deallocate
 

Detailed Description

Class that defines the image luminance visual feature.

For more details see C. Collewet, E. Marchand, F. Chaumette. Visual servoing set free from image processing. In IEEE Int. Conf. on Robotics and Automation, ICRA'08, Pages 81-86, Pasadena, Californie, Mai 2008.

Examples:
photometricVisualServoing.cpp.

Definition at line 92 of file vpFeatureLuminance.h.

Member Enumeration Documentation

Indicates who should deallocate the feature.

Enumerator
user 
vpServo 

Definition at line 152 of file vpBasicFeature.h.

Constructor & Destructor Documentation

vpFeatureLuminance::vpFeatureLuminance ( )

Default constructor that build a visual feature.

Definition at line 73 of file vpFeatureLuminance.cpp.

References bord, vpBasicFeature::dim_s, vpBasicFeature::flags, init(), vpBasicFeature::nbParameters, and pixInfo.

Referenced by duplicate().

vpFeatureLuminance::~vpFeatureLuminance ( )
virtual

Destructor.

Default destructor.

Definition at line 87 of file vpFeatureLuminance.cpp.

References vpBasicFeature::flags, and pixInfo.

Member Function Documentation

unsigned int vpBasicFeature::dimension_s ( )
inlineinherited

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

Definition at line 102 of file vpBasicFeature.h.

void vpFeatureLuminance::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 305 of file vpFeatureLuminance.cpp.

References vpERROR_TRACE.

void vpFeatureLuminance::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 327 of file vpFeatureLuminance.cpp.

References vpERROR_TRACE.

vpFeatureLuminance * vpFeatureLuminance::duplicate ( ) const
virtual

Create an object with the same type.

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

Implements vpBasicFeature.

Definition at line 354 of file vpFeatureLuminance.cpp.

References vpFeatureLuminance().

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

Compute the error $ (I-I^*)$ between the current and the desired

Parameters
s_star: Desired visual feature.
select: Not used.

Reimplemented from vpBasicFeature.

Examples:
photometricVisualServoing.cpp.

Definition at line 264 of file vpFeatureLuminance.cpp.

void vpFeatureLuminance::error ( const vpBasicFeature s_star,
vpColVector e 
)

Compute the error $ (I-I^*)$ between the current and the desired

Parameters
s_star: Desired visual feature.
e: Error between the current and the desired features.

Definition at line 243 of file vpFeatureLuminance.cpp.

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

vpColVector vpFeatureLuminance::error ( const unsigned int  select = FEATURE_ALL)

Compute the error between a visual features and zero.

double vpFeatureLuminance::get_Z ( ) const

Get the value of $ Z $ which represents the depth in the 3D camera frame.

Returns
The value of $ Z $.

Definition at line 114 of file vpFeatureLuminance.cpp.

References Z.

vpBasicFeatureDeallocatorType vpBasicFeature::getDeallocate ( )
inlineinherited

Definition at line 162 of file vpBasicFeature.h.

Referenced by vpServo::kill().

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

Get the feature vector dimension.

Definition at line 90 of file vpBasicFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, vpMatrix::getRows(), and vpBasicFeature::s.

Referenced by vpServo::getDimension().

void vpFeatureLuminance::init ( void  )
virtual

Initialize the memory space requested for vpFeatureLuminance visual feature.

Implements vpBasicFeature.

Examples:
photometricVisualServoing.cpp.

Definition at line 31 of file vpFeatureLuminance.cpp.

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

Referenced by init(), and vpFeatureLuminance().

void vpFeatureLuminance::init ( unsigned int  _nbr,
unsigned int  _nbc,
double  _Z 
)
vpMatrix vpFeatureLuminance::interaction ( const unsigned int  select = FEATURE_ALL)
virtual

Compute and return the interaction matrix $ L_I $. The computation is made thanks to the values of the luminance features $ I $

Implements vpBasicFeature.

Examples:
photometricVisualServoing.cpp.

Definition at line 227 of file vpFeatureLuminance.cpp.

void vpFeatureLuminance::interaction ( vpMatrix L)

Compute and return the interaction matrix $ L_I $. The computation is made thanks to the values of the luminance features $ I $

Definition at line 197 of file vpFeatureLuminance.cpp.

References vpBasicFeature::dim_s, vpMatrix::getRows(), vpLuminance::Ix, vpLuminance::Iy, pixInfo, vpMatrix::resize(), vpLuminance::x, vpLuminance::y, and vpLuminance::Z.

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

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

Definition at line 111 of file vpBasicFeature.h.

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

Not implemented.

Implements vpBasicFeature.

Definition at line 284 of file vpFeatureLuminance.cpp.

References vpERROR_TRACE.

static unsigned int vpBasicFeature::selectAll ( )
inlinestaticinherited

Select all the features.

Definition at line 114 of file vpBasicFeature.h.

void vpFeatureLuminance::set_Z ( const double  Z)

Set the value of $ Z $ which represents the depth in the 3D camera frame.

Parameters
Z: $ Z $ value to set.

Definition at line 101 of file vpFeatureLuminance.cpp.

References vpBasicFeature::flags, and Z.

void vpFeatureLuminance::setCameraParameters ( vpCameraParameters _cam)
Examples:
photometricVisualServoing.cpp.

Definition at line 121 of file vpFeatureLuminance.cpp.

References cam.

void vpBasicFeature::setDeallocate ( vpBasicFeatureDeallocatorType  d)
inlineinherited

Definition at line 161 of file vpBasicFeature.h.

Referenced by vpServo::addFeature().

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

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

Member Data Documentation

unsigned int vpFeatureLuminance::bord
protected

Border size.

Definition at line 104 of file vpFeatureLuminance.h.

Referenced by buildFrom(), init(), and vpFeatureLuminance().

vpCameraParameters vpFeatureLuminance::cam

Definition at line 124 of file vpFeatureLuminance.h.

Referenced by buildFrom(), and setCameraParameters().

const unsigned int vpBasicFeature::FEATURE_ALL = 0xffff
staticinherited
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 85 of file vpBasicFeature.h.

Referenced by vpBasicFeature::error(), vpGenericFeature::error(), vpBasicFeature::get_s(), vpBasicFeature::getDimension(), vpFeatureMoment::getDimension(), vpFeatureMoment::interaction(), vpGenericFeature::interaction(), vpGenericFeature::print(), and vpFeatureMoment::print().

int vpFeatureLuminance::firstTimeIn
protected

Definition at line 108 of file vpFeatureLuminance.h.

Referenced by buildFrom(), and init().

bool* vpBasicFeature::flags
protectedinherited

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

Definition at line 96 of file vpBasicFeature.h.

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

unsigned int vpFeatureLuminance::nbc
protected

Number of column.

Definition at line 102 of file vpFeatureLuminance.h.

Referenced by buildFrom(), and init().

unsigned int vpFeatureLuminance::nbr
protected

Number of rows.

Definition at line 100 of file vpFeatureLuminance.h.

Referenced by buildFrom(), and init().

vpLuminance* vpFeatureLuminance::pixInfo
protected

Store the image (as a vector with intensity and gradient I, Ix, Iy)

Definition at line 107 of file vpFeatureLuminance.h.

Referenced by buildFrom(), init(), interaction(), vpFeatureLuminance(), and ~vpFeatureLuminance().

vpColVector vpBasicFeature::s
protectedinherited

State of the visual feature.

Definition at line 91 of file vpBasicFeature.h.

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

double vpFeatureLuminance::Z
protected

FeaturePoint depth (required to compute the interaction matrix) default Z = 1m

Definition at line 97 of file vpFeatureLuminance.h.

Referenced by buildFrom(), get_Z(), init(), and set_Z().