![]() |
Visual Servoing Platform
version 3.3.0
|
#include <vpMbtDistanceCylinder.h>
Public Member Functions | |
vpMbtDistanceCylinder () | |
virtual | ~vpMbtDistanceCylinder () |
void | buildFrom (const vpPoint &_p1, const vpPoint &_p2, double r) |
void | computeInteractionMatrixError (const vpHomogeneousMatrix &cMo, const vpImage< unsigned char > &I) |
void | display (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &col, unsigned int thickness=1, bool displayFullModel=false) |
void | display (const vpImage< vpRGBa > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &col, unsigned int thickness=1, bool displayFullModel=false) |
void | displayMovingEdges (const vpImage< unsigned char > &I) |
void | displayMovingEdges (const vpImage< vpRGBa > &I) |
void | getCameraParameters (vpCameraParameters &camera) |
unsigned int | getIndex () |
double | getMeanWeight1 () const |
double | getMeanWeight2 () const |
std::vector< std::vector< double > > | getFeaturesForDisplay () |
std::vector< std::vector< double > > | getModelForDisplay (unsigned int width, unsigned int height, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, bool displayFullModel=false) |
std::string | getName () const |
void | initInteractionMatrixError () |
bool | initMovingEdge (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, bool doNotTrack, const vpImage< bool > *mask=NULL) |
bool | isTracked () const |
bool | isVisible () const |
void | reinitMovingEdge (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpImage< bool > *mask=NULL) |
void | setCameraParameters (const vpCameraParameters &camera) |
void | setTracked (const bool &track) |
void | setIndex (unsigned int i) |
void | setMeanWeight1 (double wmean) |
void | setMeanWeight2 (double wmean) |
void | setMovingEdge (vpMe *Me) |
void | setName (const std::string &cyl_name) |
void | setName (const char *cyl_name) |
void | setVisible (bool _isvisible) |
void | trackMovingEdge (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo) |
void | updateMovingEdge (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo) |
Public Attributes | |
vpMbtMeLine * | meline1 |
vpMbtMeLine * | meline2 |
vpCircle * | cercle1 |
vpCircle * | cercle2 |
double | radius |
vpPoint * | p1 |
vpPoint * | p2 |
vpMatrix | L |
vpColVector | error |
unsigned int | nbFeature |
unsigned int | nbFeaturel1 |
unsigned int | nbFeaturel2 |
bool | Reinit |
vpCylinder * | c |
vpMbHiddenFaces< vpMbtPolygon > * | hiddenface |
int | index_polygon |
bool | isvisible |
Manage a cylinder used in the model-based tracker.
Definition at line 65 of file vpMbtDistanceCylinder.h.
vpMbtDistanceCylinder::vpMbtDistanceCylinder | ( | ) |
Basic constructor
Definition at line 63 of file vpMbtDistanceCylinder.cpp.
|
virtual |
Basic destructor useful to deallocate the memory.
Definition at line 74 of file vpMbtDistanceCylinder.cpp.
Build a vpMbtDistanceCylinder thanks to two points corresponding to the extremities of its axis and its radius.
_p1 | : The first extremity on the axis. |
_p2 | : The second extremity on the axis. |
r | : Radius of the cylinder. |
Definition at line 118 of file vpMbtDistanceCylinder.cpp.
Referenced by vpMbTracker::addProjectionErrorCylinder().
void vpMbtDistanceCylinder::computeInteractionMatrixError | ( | const vpHomogeneousMatrix & | cMo, |
const vpImage< unsigned char > & | I | ||
) |
Compute the interaction matrix and the error vector corresponding to the cylinder.
Definition at line 756 of file vpMbtDistanceCylinder.cpp.
Referenced by vpMbEdgeTracker::computeVVSFirstPhase(), vpMbEdgeTracker::computeVVSFirstPhaseFactor(), vpMbEdgeTracker::computeVVSInteractionMatrixAndResidu(), vpMbEdgeKltTracker::trackFirstLoop(), and vpMbEdgeKltTracker::trackSecondLoop().
void vpMbtDistanceCylinder::display | ( | const vpImage< unsigned char > & | I, |
const vpHomogeneousMatrix & | cMo, | ||
const vpCameraParameters & | camera, | ||
const vpColor & | col, | ||
unsigned int | thickness = 1 , |
||
bool | displayFullModel = false |
||
) |
Display the cylinder. The 3D cylinder is projected into the image.
I | : The image. |
cMo | : Pose used to project the 3D model into the image. |
camera | : The camera parameters. |
col | : The desired color. |
thickness | : The thickness of the lines. |
displayFullModel | : When true, display the circle even if non visible. |
Definition at line 515 of file vpMbtDistanceCylinder.cpp.
void vpMbtDistanceCylinder::display | ( | const vpImage< vpRGBa > & | I, |
const vpHomogeneousMatrix & | cMo, | ||
const vpCameraParameters & | camera, | ||
const vpColor & | col, | ||
unsigned int | thickness = 1 , |
||
bool | displayFullModel = false |
||
) |
Display the cylinder. The 3D cylinder is projected into the image.
I | : The image. |
cMo | : Pose used to project the 3D model into the image. |
camera | : The camera parameters. |
col | : The desired color. |
thickness | : The thickness of the lines. |
displayFullModel | : When true, display the circle even if non visible. |
Definition at line 540 of file vpMbtDistanceCylinder.cpp.
void vpMbtDistanceCylinder::displayMovingEdges | ( | const vpImage< unsigned char > & | I | ) |
Enable to display the points along the lines with a color corresponding to their state.
I | : The image. |
Definition at line 714 of file vpMbtDistanceCylinder.cpp.
Definition at line 724 of file vpMbtDistanceCylinder.cpp.
|
inline |
Get the camera paramters.
camera | : The vpCameraParameters used to store the camera parameters. |
Definition at line 158 of file vpMbtDistanceCylinder.h.
std::vector< std::vector< double > > vpMbtDistanceCylinder::getFeaturesForDisplay | ( | ) |
Return a list of features parameters for display.
<feature id (here 0 for ME)>
, <pt.i()>
, <pt.j()>
, <state>
Definition at line 559 of file vpMbtDistanceCylinder.cpp.
Referenced by vpMbEdgeTracker::getFeaturesForDisplayEdge().
|
inline |
Get the index of the cylinder.
Definition at line 165 of file vpMbtDistanceCylinder.h.
|
inline |
Get the mean weight of the first line. The mean weight is computed thanks to the weight of each moving edge. Those weights are computed by the robust estimation method used during the virtual visual servoing.
Definition at line 174 of file vpMbtDistanceCylinder.h.
|
inline |
Get the mean weight of the second line. The mean weight is computed thanks to the weight of each moving edge. Those weights are computed by the robust estimation method used during the virtual visual servoing.
Definition at line 183 of file vpMbtDistanceCylinder.h.
std::vector< std::vector< double > > vpMbtDistanceCylinder::getModelForDisplay | ( | unsigned int | width, |
unsigned int | height, | ||
const vpHomogeneousMatrix & | cMo, | ||
const vpCameraParameters & | camera, | ||
bool | displayFullModel = false |
||
) |
Return a list of line parameters to display the primitive at a given pose and camera parameters.
<primitive id (here 0 for line)>
, <pt_start.i()>
, <pt_start.j()>
, <pt_end.i()>
, <pt_end.j()>
width,height | Image size (unused parameters). |
cMo | : Pose used to project the 3D model into the image. |
camera | : The camera parameters. |
displayFullModel | : If true, the line is displayed even if it is not |
Definition at line 614 of file vpMbtDistanceCylinder.cpp.
|
inline |
Get the name of the cylinder.
Definition at line 197 of file vpMbtDistanceCylinder.h.
void vpMbtDistanceCylinder::initInteractionMatrixError | ( | ) |
Initialize the size of the interaction matrix and the error vector.
Definition at line 737 of file vpMbtDistanceCylinder.cpp.
Referenced by vpMbEdgeKltTracker::initMbtTracking(), and vpMbEdgeTracker::initMbtTracking().
bool vpMbtDistanceCylinder::initMovingEdge | ( | const vpImage< unsigned char > & | I, |
const vpHomogeneousMatrix & | cMo, | ||
bool | doNotTrack, | ||
const vpImage< bool > * | mask = NULL |
||
) |
Initialize the moving edge thanks to a given pose of the camera. The 3D model is projected into the image to create moving edges along the lines.
I | : The image. |
cMo | : The pose of the camera used to initialize the moving edges. |
doNotTrack | : If true, ME are not tracked. |
mask | Mask image or NULL if not wanted. Mask values that are set to true are considered in the tracking. To disable a pixel, set false. |
Definition at line 183 of file vpMbtDistanceCylinder.cpp.
Referenced by vpMbTracker::projectionErrorInitMovingEdge().
|
inline |
Return if the cylinder is used for tracking.
Definition at line 209 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::computeProjectionErrorImpl(), vpMbEdgeTracker::getFeaturesForDisplayEdge(), vpMbEdgeKltTracker::initMbtTracking(), vpMbEdgeTracker::initMbtTracking(), and vpMbTracker::projectionErrorInitMovingEdge().
|
inline |
Check if the cylinder is visible in the image or not.
Definition at line 216 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::computeProjectionErrorImpl(), and vpMbEdgeTracker::getFeaturesForDisplayEdge().
void vpMbtDistanceCylinder::reinitMovingEdge | ( | const vpImage< unsigned char > & | I, |
const vpHomogeneousMatrix & | cMo, | ||
const vpImage< bool > * | mask = NULL |
||
) |
Reinitialize the cylinder if it is required.
A line is reinitialized if the 2D lines do not match enough with the projected 3D lines.
I | : the image. |
cMo | : The pose of the camera. |
mask | Mask image or NULL if not wanted. Mask values that are set to true are considered in the tracking. To disable a pixel, set false. |
Definition at line 488 of file vpMbtDistanceCylinder.cpp.
|
inline |
Set the camera paramters.
camera | : The camera parameters. |
Definition at line 225 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::addProjectionErrorCylinder(), and vpMbTracker::computeProjectionErrorImpl().
|
inline |
Set the index of the cylinder.
i | : The index number |
Definition at line 239 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::addProjectionErrorCylinder().
|
inline |
Set the mean weight of the first line.
wmean | : The mean weight of the first line. |
Definition at line 246 of file vpMbtDistanceCylinder.h.
Referenced by vpMbEdgeTracker::updateMovingEdgeWeights().
|
inline |
Set the mean weight of the second line.
wmean | : The mean weight of the second line. |
Definition at line 253 of file vpMbtDistanceCylinder.h.
Referenced by vpMbEdgeTracker::updateMovingEdgeWeights().
void vpMbtDistanceCylinder::setMovingEdge | ( | vpMe * | _me | ) |
Set the moving edge parameters.
_me | : an instance of vpMe containing all the desired parameters |
Definition at line 161 of file vpMbtDistanceCylinder.cpp.
Referenced by vpMbTracker::addProjectionErrorCylinder().
|
inline |
Set the name of the cylinder.
cyl_name | : The name of the cylinder |
Definition at line 269 of file vpMbtDistanceCylinder.h.
|
inline |
Set the name of the cylinder.
cyl_name | : The name of the cylinder. |
Definition at line 262 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::addProjectionErrorCylinder().
|
inline |
Set if the cylinder has to considered during tracking phase.
track | : True if the cylinder has to be tracked, False otherwise. |
Definition at line 232 of file vpMbtDistanceCylinder.h.
|
inline |
Set a boolean parameter to indicates if the cylinder is visible in the image or not.
_isvisible | : Set to true if the cylinder is visible |
Definition at line 277 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::projectionErrorInitMovingEdge().
void vpMbtDistanceCylinder::trackMovingEdge | ( | const vpImage< unsigned char > & | I, |
const vpHomogeneousMatrix & | cMo | ||
) |
Track the moving edges in the image.
I | : the image. |
cMo | : The pose of the camera. |
Definition at line 322 of file vpMbtDistanceCylinder.cpp.
void vpMbtDistanceCylinder::updateMovingEdge | ( | const vpImage< unsigned char > & | I, |
const vpHomogeneousMatrix & | cMo | ||
) |
Update the moving edges internal parameters.
I | : the image. |
cMo | : The pose of the camera. |
Definition at line 353 of file vpMbtDistanceCylinder.cpp.
vpCylinder* vpMbtDistanceCylinder::c |
The cylinder.
Definition at line 110 of file vpMbtDistanceCylinder.h.
vpCircle* vpMbtDistanceCylinder::cercle1 |
The upper circle limiting the cylinder.
Definition at line 85 of file vpMbtDistanceCylinder.h.
vpCircle* vpMbtDistanceCylinder::cercle2 |
The lower circle limiting the cylinder.
Definition at line 87 of file vpMbtDistanceCylinder.h.
vpColVector vpMbtDistanceCylinder::error |
The error vector.
Definition at line 100 of file vpMbtDistanceCylinder.h.
Referenced by vpMbEdgeTracker::computeVVSFirstPhase(), vpMbEdgeTracker::computeVVSInteractionMatrixAndResidu(), and vpMbEdgeKltTracker::trackSecondLoop().
vpMbHiddenFaces<vpMbtPolygon>* vpMbtDistanceCylinder::hiddenface |
Pointer to the list of faces.
Definition at line 113 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::addProjectionErrorCylinder(), and vpMbTracker::projectionErrorInitMovingEdge().
int vpMbtDistanceCylinder::index_polygon |
Index of the face which contains the cylinder.
Definition at line 115 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::addProjectionErrorCylinder(), and vpMbTracker::projectionErrorInitMovingEdge().
bool vpMbtDistanceCylinder::isvisible |
Indicates if the cylinder is visible or not.
Definition at line 117 of file vpMbtDistanceCylinder.h.
vpMatrix vpMbtDistanceCylinder::L |
The interaction matrix.
Definition at line 98 of file vpMbtDistanceCylinder.h.
Referenced by vpMbEdgeTracker::computeVVSFirstPhase(), vpMbEdgeTracker::computeVVSInteractionMatrixAndResidu(), and vpMbEdgeKltTracker::trackSecondLoop().
vpMbtMeLine* vpMbtDistanceCylinder::meline1 |
The moving edge containers (first line of the cylinder)
Definition at line 80 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::computeProjectionErrorImpl(), vpMbEdgeTracker::computeVVSFirstPhase(), vpMbEdgeTracker::computeVVSFirstPhaseFactor(), displayMovingEdges(), vpMbTracker::projectionErrorInitMovingEdge(), vpMbEdgeKltTracker::trackFirstLoop(), and vpMbEdgeTracker::updateMovingEdgeWeights().
vpMbtMeLine* vpMbtDistanceCylinder::meline2 |
The moving edge containers (second line of the cylinder)
Definition at line 82 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::computeProjectionErrorImpl(), vpMbEdgeTracker::computeVVSFirstPhase(), vpMbEdgeTracker::computeVVSFirstPhaseFactor(), displayMovingEdges(), vpMbTracker::projectionErrorInitMovingEdge(), vpMbEdgeKltTracker::trackFirstLoop(), and vpMbEdgeTracker::updateMovingEdgeWeights().
unsigned int vpMbtDistanceCylinder::nbFeature |
The number of moving edges.
Definition at line 102 of file vpMbtDistanceCylinder.h.
Referenced by vpMbEdgeTracker::computeVVSFirstPhase(), vpMbEdgeTracker::computeVVSFirstPhaseFactor(), vpMbEdgeTracker::computeVVSInteractionMatrixAndResidu(), vpMbEdgeKltTracker::initMbtTracking(), vpMbEdgeTracker::initMbtTracking(), vpMbTracker::projectionErrorInitMovingEdge(), vpMbEdgeKltTracker::trackFirstLoop(), vpMbEdgeKltTracker::trackSecondLoop(), and vpMbEdgeTracker::updateMovingEdgeWeights().
unsigned int vpMbtDistanceCylinder::nbFeaturel1 |
The number of moving edges on line 1.
Definition at line 104 of file vpMbtDistanceCylinder.h.
Referenced by vpMbEdgeTracker::computeVVSFirstPhase(), vpMbTracker::projectionErrorInitMovingEdge(), and vpMbEdgeTracker::updateMovingEdgeWeights().
unsigned int vpMbtDistanceCylinder::nbFeaturel2 |
The number of moving edges on line 2.
Definition at line 106 of file vpMbtDistanceCylinder.h.
Referenced by vpMbEdgeTracker::computeVVSFirstPhase(), vpMbTracker::projectionErrorInitMovingEdge(), and vpMbEdgeTracker::updateMovingEdgeWeights().
vpPoint* vpMbtDistanceCylinder::p1 |
The first extremity on the axe.
Definition at line 93 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::addProjectionErrorCylinder().
vpPoint* vpMbtDistanceCylinder::p2 |
The second extremity on the axe.
Definition at line 95 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::addProjectionErrorCylinder().
double vpMbtDistanceCylinder::radius |
The radius of the cylinder.
Definition at line 90 of file vpMbtDistanceCylinder.h.
Referenced by vpMbTracker::addProjectionErrorCylinder().
bool vpMbtDistanceCylinder::Reinit |
Indicates if the line has to be reinitialized.
Definition at line 108 of file vpMbtDistanceCylinder.h.
Referenced by vpMbEdgeTracker::updateMovingEdgeWeights().