![]() |
Visual Servoing Platform
version 3.3.0
|
#include <vpCircle.h>
Public Types | |
enum | vpForwardProjectionDeallocatorType { user, vpDisplayForwardProjection } |
Public Member Functions | |
void | init () |
vpCircle () | |
vpCircle (const vpColVector &oP) | |
vpCircle (double A, double B, double C, double X0, double Y0, double Z0, double R) | |
virtual | ~vpCircle () |
void | setWorldCoordinates (const vpColVector &oP) |
void | setWorldCoordinates (double A, double B, double C, double X0, double Y0, double Z0, double R) |
double | getA () const |
double | getB () const |
double | getC () const |
double | getX () const |
double | getY () const |
double | getZ () const |
double | getR () const |
void | projection () |
void | projection (const vpColVector &cP, vpColVector &p) |
void | changeFrame (const vpHomogeneousMatrix &cMo, vpColVector &cP) |
void | changeFrame (const vpHomogeneousMatrix &cMo) |
void | display (const vpImage< unsigned char > &I, const vpCameraParameters &cam, const vpColor &color=vpColor::green, unsigned int thickness=1) |
void | display (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &color=vpColor::green, unsigned int thickness=1) |
vpCircle * | duplicate () const |
void | project () |
void | project (const vpHomogeneousMatrix &cMo) |
void | track (const vpHomogeneousMatrix &cMo) |
virtual void | print () const |
void | setDeallocate (vpForwardProjectionDeallocatorType d) |
vpForwardProjectionDeallocatorType | getDeallocate () |
Static Public Member Functions | |
static void | computeIntersectionPoint (const vpCircle &circle, const vpCameraParameters &cam, const double &rho, const double &theta, double &i, double &j) |
Public Attributes | |
vpColVector | oP |
vpColVector | p |
vpColVector | cP |
bool | cPAvailable |
Class that defines what is a circle.
Definition at line 57 of file vpCircle.h.
|
inherited |
Used for memory issue especially in the vpServo class.
Enumerator | |
---|---|
user | |
vpDisplayForwardProjection |
Definition at line 210 of file vpForwardProjection.h.
vpCircle::vpCircle | ( | ) |
Definition at line 85 of file vpCircle.cpp.
References init().
|
explicit |
Construct the circle from the intersection of a plane and a sphere.
oP_ | : oP[0], oP[1], oP[2] correspond to A, B, C from the plane equation Ax + By + Cz = 0. oP[3], oP[4], oP[5] correspond to X, Y, Z the coordinates of the center of the sphere. oP[6] corresponds to the radius of the sphere. |
Definition at line 97 of file vpCircle.cpp.
vpCircle::vpCircle | ( | double | A, |
double | B, | ||
double | C, | ||
double | X0, | ||
double | Y0, | ||
double | Z0, | ||
double | R | ||
) |
Construct the circle from the intersection of a plane and a sphere.
A | : A from the plane equation Ax + By + Cz = 0. |
B | : B from the plane equation Ax + By + Cz = 0. |
C | : C from the plane equation Ax + By + Cz = 0. |
X0 | : X Coordinate of the center of the sphere. |
Y0 | : Y Coordinate of the center of the sphere. |
Z0 | : Z Coordinate of the center of the sphere. |
R | : Radius of the sphere. |
Definition at line 116 of file vpCircle.cpp.
|
virtual |
Definition at line 122 of file vpCircle.cpp.
|
virtual |
perspective projection of the circle
Implements vpForwardProjection.
Definition at line 264 of file vpCircle.cpp.
|
virtual |
perspective projection of the circle
Implements vpForwardProjection.
Definition at line 236 of file vpCircle.cpp.
Referenced by display().
|
static |
Computes the coordinates of the point corresponding to the intersection between a circle and a line.
circle | : Circle to consider for the intersection. |
cam | : Camera parameters that have to be used for the intersection computation. |
rho | : The rho parameter of the line. |
theta | : The theta parameter of the line. |
i | : resulting i-coordinate of the intersection point. |
j | : resulting j-coordinate of the intersection point. |
Definition at line 329 of file vpCircle.cpp.
|
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. |
Implements vpForwardProjection.
Definition at line 291 of file vpCircle.cpp.
References vpFeatureDisplay::displayEllipse(), and vpTracker::p.
|
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. |
Implements vpForwardProjection.
Definition at line 298 of file vpCircle.cpp.
References changeFrame(), vpFeatureDisplay::displayEllipse(), and projection().
|
virtual |
for memory issue (used by the vpServo class only)
Implements vpForwardProjection.
Definition at line 307 of file vpCircle.cpp.
|
inline |
Definition at line 69 of file vpCircle.h.
|
inline |
Definition at line 70 of file vpCircle.h.
|
inline |
Definition at line 71 of file vpCircle.h.
|
inlineinherited |
Definition at line 219 of file vpForwardProjection.h.
|
inline |
Definition at line 77 of file vpCircle.h.
|
inline |
Definition at line 73 of file vpCircle.h.
|
inline |
Definition at line 74 of file vpCircle.h.
|
inline |
Definition at line 75 of file vpCircle.h.
|
virtual |
Default initialisation of the feature parameters:
Implements vpForwardProjection.
Definition at line 42 of file vpCircle.cpp.
References vpTracker::cP, vpForwardProjection::oP, vpTracker::p, and vpColVector::resize().
Referenced by vpCircle().
|
virtualinherited |
Print to stdout the feature parameters in:
Definition at line 52 of file vpForwardProjection.cpp.
|
inherited |
Compute the feature parameters in the image plane (vpTracker::p) from the parameters in the camera frame (vpTracker::cP).
Definition at line 67 of file vpForwardProjection.cpp.
Referenced by vpMbtFaceDepthNormal::computeNormalVisibility(), vpMbtFaceDepthDense::computeROI(), and vpMbtFaceDepthNormal::displayFeature().
|
inherited |
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 83 of file vpForwardProjection.cpp.
|
virtual |
Perspective projection of the circle.
From the 3D parameters of the circle in the camera frame available in cP, computes the 2D parameters of the ellipse resulting from the perspective projection in the image plane. Those 2D parameters are available in p vector.
See vpCircle::projection(const vpColVector &, vpColVector &) for a more detailed description of the parameters.
Implements vpForwardProjection.
Definition at line 135 of file vpCircle.cpp.
Referenced by display().
|
virtual |
Perspective projection of the circle.
cP_ | 3D cercle input parameters. This vector is of dimension 7. It contains the following parameters: A, B, C, X0, Y0, Z0, r where
|
p_ | 2D circle output parameters. This is a 5 dimension vector. It contains the following parameters: xc, yc, m20, m11, m02 where:
|
Implements vpForwardProjection.
Definition at line 153 of file vpCircle.cpp.
|
inlineinherited |
Definition at line 218 of file vpForwardProjection.h.
|
virtual |
Set the world coordinates of the circle from the intersection of a plane and a sphere. We mean here the coordinates of the circle in the object frame
oP_ | : oP[0], oP[1], oP[2] correspond to A, B, C from the plane equation Ax + By + Cz = 0. oP[3], oP[4], oP[5] correspond to X, Y, Z the coordinates of the center of the sphere. oP[6] corresponds to the radius of the sphere. |
Implements vpForwardProjection.
Definition at line 60 of file vpCircle.cpp.
Referenced by vpMbtDistanceKltCylinder::buildFrom().
void vpCircle::setWorldCoordinates | ( | double | A, |
double | B, | ||
double | C, | ||
double | X0, | ||
double | Y0, | ||
double | Z0, | ||
double | R | ||
) |
Set the world coordinates of the circle from the intersection of a plane and a sphere. We mean here the coordinates of the circle in the object frame
A | : A from the plane equation Ax + By + Cz = 0. |
B | : B from the plane equation Ax + By + Cz = 0. |
C | : C from the plane equation Ax + By + Cz = 0. |
X0 | : X Coordinate of the center of the sphere. |
Y0 | : Y Coordinate of the center of the sphere. |
Z0 | : Z Coordinate of the center of the sphere. |
R | : Radius of the sphere. |
Definition at line 74 of file vpCircle.cpp.
|
inherited |
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 110 of file vpForwardProjection.cpp.
Referenced by vpProjectionDisplay::displayCamera(), vpWireFrameSimulator::projectCameraTrajectory(), and vpSimulatorAfma6::updateArticularPosition().
|
inherited |
Feature coordinates expressed in the camera frame cP.
Definition at line 74 of file vpTracker.h.
Referenced by init(), vpSphere::init(), vpCylinder::init(), vpTracker::operator=(), and vpPose::printPoint().
|
inherited |
Flag used to indicate if the feature parameters cP expressed in the camera frame are available.
Definition at line 80 of file vpTracker.h.
Referenced by vpTracker::operator=().
|
inherited |
Feature coordinates expressed in the object frame, also called world frame.
Definition at line 73 of file vpForwardProjection.h.
Referenced by init(), vpSphere::init(), vpCylinder::init(), vpPose::printPoint(), and vpSphere::setWorldCoordinates().
|
inherited |
Feature coordinates expressed in the image plane p. They correspond to 2D normalized coordinates expressed in meters.
Definition at line 70 of file vpTracker.h.
Referenced by display(), vpSphere::display(), vpProjectionDisplay::display(), vpProjectionDisplay::displayCamera(), init(), vpSphere::init(), vpMeTracker::init(), vpCylinder::init(), vpTracker::operator=(), and vpPose::printPoint().