Visual Servoing Platform
version 3.5.0 under development (2022-02-15)
|
#include <visp3/core/vpForwardProjection.h>
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 vpForwardProjection | |
vpColVector | oP |
Public Attributes Inherited from vpTracker | |
vpColVector | p |
vpColVector | cP |
bool | cPAvailable |
Protected Member Functions | |
Protected Member Functions Inherited from vpForwardProjection | |
virtual void | init ()=0 |
Class that defines what is a generic geometric feature.
Each geometric feature has parameters expressed:
Definition at line 67 of file vpForwardProjection.h.
Used for memory issue especially in the vpServo class.
Enumerator | |
---|---|
user | |
vpDisplayForwardProjection |
Definition at line 73 of file vpForwardProjection.h.
|
inline |
Definition at line 77 of file vpForwardProjection.h.
|
inlinevirtual |
Destructor that does nothing.
Definition at line 80 of file vpForwardProjection.h.
References vpColor::green.
|
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, vpCircle, vpPoint, and vpSphere.
Referenced by project(), vpLine::~vpLine(), and vpPoint::~vpPoint().
|
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 vpCylinder, vpLine, vpCircle, vpPoint, and vpSphere.
|
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 vpCylinder, vpLine, vpCircle, vpPoint, and vpSphere.
Referenced by vpProjectionDisplay::display(), vpLine::~vpLine(), and vpPoint::~vpPoint().
|
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 vpCylinder, vpLine, vpCircle, vpPoint, and vpSphere.
|
pure virtual |
Create an object with the same type.
Implemented in vpCylinder, vpLine, vpCircle, vpPoint, and vpSphere.
Referenced by vpLine::~vpLine(), and vpPoint::~vpPoint().
|
inlineinherited |
Return object parameters expressed in the 3D camera frame.
Definition at line 99 of file vpTracker.h.
|
inline |
Return object parameters expressed in the 3D object frame.
Definition at line 165 of file vpForwardProjection.h.
|
inlineinherited |
Return object parameters expressed in the 2D image plane computed by perspective projection.
Definition at line 97 of file vpTracker.h.
|
inline |
Definition at line 167 of file vpForwardProjection.h.
|
protectedpure virtual |
Default initialisation of the feature parameters:
Implemented in vpCylinder, vpLine, vpPoint, vpCircle, and vpSphere.
Referenced by vpSphere::getR(), vpCircle::getR(), vpCylinder::getR(), vpLine::setTheta(), and vpPoint::~vpPoint().
|
virtual |
Print to stdout the feature parameters in:
Definition at line 53 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 68 of file vpForwardProjection.cpp.
References vpTracker::cP, vpTracker::p, and projection().
Referenced by vpMbtDistanceKltCylinder::computeInteractionMatrixAndResidu(), vpMbtFaceDepthNormal::computeNormalVisibility(), vpKeyPoint::computePose(), vpMbtFaceDepthDense::computeROI(), vpMbtFaceDepthNormal::displayFeature(), vpMbtFaceDepthNormal::getFeaturesForDisplay(), vpKeyPoint::matchPointAndDetect(), track(), vpMbtDistanceCircle::~vpMbtDistanceCircle(), vpMbtDistanceCylinder::~vpMbtDistanceCylinder(), and vpMbtDistanceLine::~vpMbtDistanceLine().
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 84 of file vpForwardProjection.cpp.
References changeFrame(), and projection().
|
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 vpCylinder, vpLine, vpPoint, vpCircle, and vpSphere.
|
pure virtual |
Computes the feature parameters in the image plane. These parameters are than updated in the vpTracker::p public attribute.
Implemented in vpCylinder, vpLine, vpPoint, vpCircle, and vpSphere.
Referenced by vpSphere::getR(), vpCircle::getR(), vpCylinder::getR(), project(), vpLine::setTheta(), and vpPoint::~vpPoint().
|
inline |
Definition at line 196 of file vpForwardProjection.h.
References vpTracker::init().
|
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 vpCylinder, vpLine, vpPoint, vpCircle, and vpSphere.
Referenced by vpSphere::getR(), vpCircle::getR(), vpCylinder::getR(), vpLine::setTheta(), and vpPoint::~vpPoint().
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 106 of file vpForwardProjection.cpp.
References project().
Referenced by vpPoseFeatures::addFeatureSegment(), vpPose::computeResidual(), vpProjectionDisplay::displayCamera(), vpImageDraw::drawFrame(), vpPose::poseVirtualVS(), vpPose::poseVirtualVSrobust(), vpWireFrameSimulator::projectCameraTrajectory(), vpSimulatorAfma6::updateArticularPosition(), and vpSimulatorViper850::updateArticularPosition().
|
inherited |
Feature coordinates expressed in the camera frame cP.
Definition at line 77 of file vpTracker.h.
Referenced by vpFeaturePoint3D::buildFrom(), vpSphere::changeFrame(), vpPoint::changeFrame(), vpCircle::changeFrame(), vpLine::changeFrame(), vpCylinder::changeFrame(), vpFeatureBuilder::create(), vpPoint::get_W(), vpPoint::get_X(), vpPoint::get_Y(), vpPoint::get_Z(), vpSphere::init(), vpCircle::init(), vpPoint::init(), vpLine::init(), vpCylinder::init(), vpMbtPolygon::isVisible(), vpTracker::operator=(), print(), vpPose::printPoint(), project(), vpSphere::projection(), vpCircle::projection(), vpPoint::projection(), vpLine::projection(), vpCylinder::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 83 of file vpTracker.h.
Referenced by vpTracker::init(), and vpTracker::operator=().
vpColVector vpForwardProjection::oP |
Feature coordinates expressed in the object frame.
Definition at line 228 of file vpForwardProjection.h.
Referenced by vpSphere::changeFrame(), vpPoint::changeFrame(), vpCircle::changeFrame(), vpLine::changeFrame(), vpCylinder::changeFrame(), vpPoint::get_oW(), vpPoint::get_oX(), vpPoint::get_oY(), vpPoint::get_oZ(), vpPoint::getWorldCoordinates(), vpSphere::init(), vpCircle::init(), vpPoint::init(), vpLine::init(), vpCylinder::init(), print(), vpPose::printPoint(), vpPoint::set_oW(), vpPoint::set_oX(), vpPoint::set_oY(), vpPoint::set_oZ(), vpSphere::setWorldCoordinates(), vpCircle::setWorldCoordinates(), vpPoint::setWorldCoordinates(), vpLine::setWorldCoordinates(), and vpCylinder::setWorldCoordinates().
|
inherited |
Feature coordinates expressed in the image plane p. They correspond to 2D normalized coordinates expressed in meters.
Definition at line 73 of file vpTracker.h.
Referenced by vpMbtDistanceCircle::computeInteractionMatrixError(), vpCircle::computeIntersectionPoint(), vpMeterPixelConversion::convertEllipse(), vpFeatureBuilder::create(), vpSphere::display(), vpPoint::display(), vpCircle::display(), vpLine::display(), vpProjectionDisplay::display(), vpCylinder::display(), vpProjectionDisplay::displayCamera(), vpFeatureDisplay::displayEllipse(), vpPose::displayModel(), vpImageDraw::drawFrame(), vpPoint::get_w(), vpPoint::get_x(), vpPoint::get_y(), vpSphere::init(), vpMeTracker::init(), vpCircle::init(), vpPoint::init(), vpLine::init(), vpCylinder::init(), vpTracker::operator=(), print(), vpPose::printPoint(), project(), vpSphere::projection(), vpCircle::projection(), vpPoint::projection(), vpLine::projection(), vpCylinder::projection(), vpPoint::set_w(), vpPoint::set_x(), and vpPoint::set_y().