![]() |
Visual Servoing Platform version 3.6.0
|
#include <vpForwardProjection.h>
Inheritance diagram for vpForwardProjection:Public Types | |
| enum | vpForwardProjectionDeallocatorType { user , vpDisplayForwardProjection } |
Public Member Functions | |
Public Member Functions Inherited from vpForwardProjection | |
| vpForwardProjection () | |
| virtual | ~vpForwardProjection () |
| virtual void | changeFrame (const vpHomogeneousMatrix &cMo, vpColVector &cP) const =0 |
| virtual void | changeFrame (const vpHomogeneousMatrix &cMo)=0 |
| virtual void | display (const vpImage< unsigned char > &I, const vpCameraParameters &cam, const vpColor &color=vpColor::green, unsigned int thickness=1)=0 |
| virtual void | display (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &color=vpColor::green, unsigned int thickness=1)=0 |
| virtual vpForwardProjection * | duplicate () const =0 |
| vpColVector | get_oP () const |
| vpForwardProjectionDeallocatorType | getDeallocate () |
| virtual void | print () const |
| virtual void | projection (const vpColVector &cP, vpColVector &p) const =0 |
| virtual void | projection ()=0 |
| void | project () |
| void | project (const vpHomogeneousMatrix &cMo) |
| void | setDeallocate (vpForwardProjectionDeallocatorType d) |
| virtual void | setWorldCoordinates (const vpColVector &oP)=0 |
| void | track (const vpHomogeneousMatrix &cMo) |
Public Member Functions Inherited from vpTracker | |
| vpColVector | get_p () const |
| vpColVector | get_cP () const |
Public Attributes | |
Public Attributes Inherited from vpTracker | |
| vpColVector | p |
| vpColVector | cP |
| bool | cPAvailable |
Protected Member Functions | |
Protected Member Functions Inherited from vpForwardProjection | |
| virtual void | init ()=0 |
Public Attributes Inherited from vpForwardProjection | |
| vpColVector | oP |
Class that defines what is a generic geometric feature.
Each geometric feature has parameters expressed:
Definition at line 62 of file vpForwardProjection.h.
Used for memory issue especially in the vpServo class.
| Enumerator | |
|---|---|
| user | |
| vpDisplayForwardProjection | |
Definition at line 68 of file vpForwardProjection.h.
|
inline |
Definition at line 72 of file vpForwardProjection.h.
|
inlinevirtual |
Destructor that does nothing.
Definition at line 75 of file vpForwardProjection.h.
|
pure virtual |
Computes the features parameters in the camera frame (cP) thanks to the parameters given in the object frame (vpForwardProjection::oP) and the homogeneous matrix relative to the pose (cMo) between the object frame and the camera frame.
To set the parameters in the object frame you need to call setWorldCoordinates().
| cMo | : The homogeneous matrix corresponding to the pose between the camera frame and the object frame. |
The features parameters in the camera frame (cP) are updated in the vpTracker::cP public attribute.
Implemented in vpCircle, vpCylinder, vpLine, vpPoint, and vpSphere.
|
pure virtual |
Computes the features parameters in the camera frame (cP) thanks to the parameters given in the object frame (vpForwardProjection::oP) and the homogeneous matrix relative to the pose (cMo) between the object frame and the camera frame.
To set the parameters in the object frame you need to call setWorldCoordinates().
| cMo | : The homogeneous matrix corresponding to the pose between the camera frame and the object frame. |
| cP | : The vector which will contain the feature parameters expressed in the camera frame. |
With this method, the vpTracker::cP public attribute is not updated.
Implemented in vpCylinder, vpLine, vpPoint, vpSphere, and vpCircle.
Referenced by project().
|
pure virtual |
Displays the feature in the image I thanks to the 2D feature parameters in the image plane (vpTracker::p) and the camera parameters which enable to convert the features from meter to pixel.
| I | : The image where the feature must be displayed in overlay. |
| cam | : The camera parameters to enable the conversion from meter to pixel. |
| color | : The desired color to display the line in the image. |
| thickness | : Thickness of the feature representation. |
Implemented in vpCircle, vpCylinder, vpLine, vpPoint, and vpSphere.
Referenced by vpProjectionDisplay::display().
|
pure virtual |
Displays the feature in the image I thanks to the features in the object frame (vpForwardProjection::oP), the homogeneous matrix relative to the pose between the object frame and the camera frame and the camera parameters which enable to convert the features from meter to pixel.
| I | : The image where the line must be displayed in overlay. |
| cMo | : The homogeneous matrix corresponding to the pose between the camera frame and the object frame. |
| cam | : The camera parameters to enable the conversion from meter to pixel. |
| color | : The desired color to display the line in the image. |
| thickness | : Thickness of the feature representation. |
Implemented in vpCircle, vpCylinder, vpLine, vpPoint, and vpSphere.
|
pure virtual |
Create an object with the same type.
Implemented in vpCircle, vpCylinder, vpLine, vpPoint, and vpSphere.
|
inlineinherited |
Return object parameters expressed in the 3D camera frame.
Definition at line 94 of file vpTracker.h.
|
inline |
Return object parameters expressed in the 3D object frame.
Definition at line 160 of file vpForwardProjection.h.
|
inlineinherited |
Return object parameters expressed in the 2D image plane computed by perspective projection.
Definition at line 92 of file vpTracker.h.
|
inline |
Definition at line 162 of file vpForwardProjection.h.
|
protectedpure virtual |
Default initialisation of the feature parameters:
Implemented in vpCircle, vpCylinder, vpLine, vpPoint, and vpSphere.
|
virtual |
Print to stdout the feature parameters in:
Definition at line 50 of file vpForwardProjection.cpp.
References vpTracker::cP, oP, vpTracker::p, and vpColVector::t().
| void vpForwardProjection::project | ( | ) |
Compute the feature parameters in the image plane (vpTracker::p) from the parameters in the camera frame (vpTracker::cP).
Definition at line 65 of file vpForwardProjection.cpp.
References vpTracker::cP, vpTracker::p, and projection().
Referenced by vpMbtDistanceKltCylinder::computeInteractionMatrixAndResidu(), vpMbtFaceDepthNormal::computeNormalVisibility(), vpMbtFaceDepthDense::computeROI(), vpMbtFaceDepthNormal::displayFeature(), vpMbtFaceDepthNormal::displayFeature(), vpMbtFaceDepthNormal::getFeaturesForDisplay(), vpKeyPoint::matchPointAndDetect(), and track().
| void vpForwardProjection::project | ( | const vpHomogeneousMatrix & | cMo | ) |
Compute the feature parameters in the camera frame (vpTracker::cP) and than compute the projection of these parameters in the image plane (vpTracker::p).
| cMo | : The homogeneous matrix corresponding to the pose between the camera frame and the object frame. |
Definition at line 81 of file vpForwardProjection.cpp.
References changeFrame(), and projection().
|
pure virtual |
Computes the feature parameters in the image plane. These parameters are than updated in the vpTracker::p public attribute.
Implemented in vpCircle, vpCylinder, vpLine, vpPoint, and vpSphere.
|
pure virtual |
Computes the feature parameters in the image plane from the parameters expressed in the camera frame.
| cP | [input] : Feature parameters expressed in the camera frame. |
| p | [output] : Feature parameters expressed in the image plane. |
Implemented in vpPoint, vpCircle, vpCylinder, vpLine, and vpSphere.
|
inline |
Definition at line 191 of file vpForwardProjection.h.
|
pure virtual |
Sets the parameters which define the feature in the object frame.
| oP | : Feature parameters expressed in the object frame used to set the vpForwardProjection::oP public attribute. |
Implemented in vpCircle, vpCylinder, vpLine, vpPoint, and vpSphere.
| void vpForwardProjection::track | ( | const vpHomogeneousMatrix & | cMo | ) |
Track the feature parameters in the camera frame (vpTracker::cP) and than compute the projection of these parameters in the image plane (vpTracker::p).
This method is similar to project(const vpHomogeneousMatrix &).
| cMo | : The homogeneous matrix corresponding to the pose between the camera frame and the object frame. |
Definition at line 103 of file vpForwardProjection.cpp.
References project().
Referenced by vpPose::computeResidual(), vpPose::computeResidual(), vpProjectionDisplay::displayCamera(), vpImageDraw::drawFrame(), vpImageDraw::drawFrame(), vpPose::poseVirtualVS(), vpPose::poseVirtualVSrobust(), vpWireFrameSimulator::projectCameraTrajectory(), vpWireFrameSimulator::projectCameraTrajectory(), vpWireFrameSimulator::projectCameraTrajectory(), vpWireFrameSimulator::projectCameraTrajectory(), vpSimulatorAfma6::updateArticularPosition(), and vpSimulatorViper850::updateArticularPosition().
|
inherited |
Feature coordinates expressed in the camera frame cP.
Definition at line 72 of file vpTracker.h.
Referenced by vpFeaturePoint3D::buildFrom(), vpCircle::changeFrame(), vpCylinder::changeFrame(), vpLine::changeFrame(), vpPoint::changeFrame(), vpSphere::changeFrame(), vpFeatureBuilder::create(), vpFeatureBuilder::create(), vpFeatureBuilder::create(), vpFeatureBuilder::create(), vpFeatureBuilder::create(), vpFeatureBuilder::create(), vpFeatureBuilder::create(), vpPoint::get_W(), vpPoint::get_X(), vpPoint::get_Y(), vpPoint::get_Z(), vpCircle::init(), vpCylinder::init(), vpLine::init(), vpPoint::init(), vpSphere::init(), vpMbtPolygon::isVisible(), vpTracker::operator=(), print(), vpPose::printPoint(), project(), vpCircle::projection(), vpCylinder::projection(), vpLine::projection(), vpPoint::projection(), vpSphere::projection(), vpLine::projection(), vpPoint::set_W(), vpPoint::set_X(), vpPoint::set_Y(), and vpPoint::set_Z().
|
inherited |
Flag used to indicate if the feature parameters cP expressed in the camera frame are available.
Definition at line 78 of file vpTracker.h.
Referenced by vpTracker::init(), and vpTracker::operator=().
| vpColVector vpForwardProjection::oP |
Feature coordinates expressed in the object frame.
Definition at line 223 of file vpForwardProjection.h.
Referenced by vpCircle::changeFrame(), vpPoint::changeFrame(), vpCylinder::changeFrame(), vpLine::changeFrame(), vpPoint::changeFrame(), vpSphere::changeFrame(), vpCircle::changeFrame(), vpPoint::get_oW(), vpPoint::get_oX(), vpPoint::get_oY(), vpPoint::get_oZ(), vpPoint::getWorldCoordinates(), vpPoint::getWorldCoordinates(), vpPoint::getWorldCoordinates(), vpPoint::getWorldCoordinates(), vpCircle::init(), vpCylinder::init(), vpLine::init(), vpPoint::init(), vpSphere::init(), print(), vpPose::printPoint(), vpPoint::set_oW(), vpPoint::set_oX(), vpPoint::set_oY(), vpPoint::set_oZ(), vpLine::setWorldCoordinates(), vpPoint::setWorldCoordinates(), vpCircle::setWorldCoordinates(), vpCylinder::setWorldCoordinates(), vpLine::setWorldCoordinates(), vpPoint::setWorldCoordinates(), vpSphere::setWorldCoordinates(), vpLine::setWorldCoordinates(), vpCircle::setWorldCoordinates(), vpCylinder::setWorldCoordinates(), vpPoint::setWorldCoordinates(), and vpSphere::setWorldCoordinates().
|
inherited |
Feature coordinates expressed in the image plane p. They correspond to 2D normalized coordinates expressed in meters.
Definition at line 68 of file vpTracker.h.
Referenced by vpMbtDistanceCircle::computeInteractionMatrixError(), vpCircle::computeIntersectionPoint(), vpMeterPixelConversion::convertEllipse(), vpMeterPixelConversion::convertEllipse(), vpMeterPixelConversion::convertEllipse(), vpMeterPixelConversion::convertEllipse(), vpFeatureBuilder::create(), vpFeatureBuilder::create(), vpFeatureBuilder::create(), vpCircle::display(), vpCylinder::display(), vpLine::display(), vpPoint::display(), vpSphere::display(), vpCircle::display(), vpCylinder::display(), vpLine::display(), vpPoint::display(), vpSphere::display(), vpProjectionDisplay::display(), vpProjectionDisplay::displayCamera(), vpFeatureDisplay::displayEllipse(), vpFeatureDisplay::displayEllipse(), vpPose::displayModel(), vpPose::displayModel(), vpImageDraw::drawFrame(), vpImageDraw::drawFrame(), vpPoint::get_w(), vpPoint::get_x(), vpPoint::get_y(), vpCircle::init(), vpCylinder::init(), vpLine::init(), vpPoint::init(), vpSphere::init(), vpMeTracker::init(), vpTracker::operator=(), print(), vpPose::printPoint(), project(), vpCircle::projection(), vpCylinder::projection(), vpLine::projection(), vpPoint::projection(), vpSphere::projection(), vpPoint::set_w(), vpPoint::set_x(), and vpPoint::set_y().