Visual Servoing Platform
version 3.2.0 under development (2019-01-22)
|
#include <visp3/core/vpImagePoint.h>
Public Member Functions | |
vpImagePoint () | |
vpImagePoint (double ii, double jj) | |
vpImagePoint (const vpImagePoint &ip) | |
virtual | ~vpImagePoint () |
vpImagePoint & | operator= (const vpImagePoint &ip) |
vpImagePoint & | operator= (const vpImagePoint &&ip) |
vpImagePoint & | operator+= (const vpImagePoint &ip) |
vpImagePoint & | operator-= (const vpImagePoint &ip) |
vpImagePoint & | operator/= (const double scale) |
vpImagePoint & | operator*= (const double scale) |
void | set_i (const double ii) |
void | set_j (const double jj) |
void | set_ij (const double ii, const double jj) |
double | get_i () const |
double | get_j () const |
void | set_u (const double u) |
void | set_v (const double v) |
void | set_uv (const double u, const double v) |
double | get_u () const |
double | get_v () const |
bool | inRectangle (const vpRect &rect) const |
Static Public Member Functions | |
static double | distance (const vpImagePoint &iP1, const vpImagePoint &iP2) |
static vpRect | getBBox (const std::vector< vpImagePoint > &ipVec) |
static double | sqrDistance (const vpImagePoint &iP1, const vpImagePoint &iP2) |
Friends | |
VISP_EXPORT bool | operator== (const vpImagePoint &ip1, const vpImagePoint &ip2) |
VISP_EXPORT bool | operator!= (const vpImagePoint &ip1, const vpImagePoint &ip2) |
VISP_EXPORT vpImagePoint | operator+= (const vpImagePoint &ip1, const vpImagePoint &ip2) |
VISP_EXPORT vpImagePoint | operator+ (const vpImagePoint &ip1, const vpImagePoint &ip2) |
VISP_EXPORT vpImagePoint | operator+ (const vpImagePoint &ip1, const int offset) |
VISP_EXPORT vpImagePoint | operator+ (const vpImagePoint &ip1, const unsigned int offset) |
VISP_EXPORT vpImagePoint | operator+ (const vpImagePoint &ip1, const double offset) |
VISP_EXPORT vpImagePoint | operator- (const vpImagePoint &ip1, const vpImagePoint &ip2) |
VISP_EXPORT vpImagePoint | operator- (const vpImagePoint &ip1, const int offset) |
VISP_EXPORT vpImagePoint | operator- (const vpImagePoint &ip1, const unsigned int offset) |
VISP_EXPORT vpImagePoint | operator- (const vpImagePoint &ip1, const double offset) |
VISP_EXPORT vpImagePoint | operator* (const vpImagePoint &ip1, const double scale) |
VISP_EXPORT vpImagePoint | operator/ (const vpImagePoint &ip1, const double scale) |
VISP_EXPORT std::ostream & | operator<< (std::ostream &os, const vpImagePoint &ip) |
Class that defines a 2D point in an image. This class is useful for image processing and stores only the 2D coordinates given in sub-pixel.
In this class, the 2D coordinates are not necessary integer values. It is easy to manipulate the given coordinates in the two frames used in ViSP : the (i,j) coordinates and the (u,v) coordinates. The two following images illustrate the two coordinate systems.
Definition at line 88 of file vpImagePoint.h.
|
inline |
Default constructor that initialize the coordinates of the image point to zero.
Definition at line 95 of file vpImagePoint.h.
|
inline |
Default constructor that initialize the coordinates of the image thanks to the parameters and .
Definition at line 100 of file vpImagePoint.h.
|
inline |
Copy constructor.
Initialize the coordinates of the image point with ip.
ip | : An image point. |
Definition at line 108 of file vpImagePoint.h.
|
inlinevirtual |
Destructor.
Definition at line 110 of file vpImagePoint.h.
|
inlinestatic |
Compute the distance
iP1 | : First point |
iP2 | : Second point |
Definition at line 285 of file vpImagePoint.h.
References get_i(), get_j(), and vpMath::sqr().
Referenced by vpDisplayGTK::displayArrow(), vpDisplayX::displayArrow(), vpDisplayOpenCV::displayArrow(), vpNurbs::globalCurveInterp(), vpMeNurbs::seekExtremities(), vpMeNurbs::track(), and vpMeNurbs::updateDelta().
|
inline |
Gets the point coordinate corresponding to the axes in the frame (i,j).
Definition at line 204 of file vpImagePoint.h.
Referenced by vpTriangle::buildFrom(), vpNurbs::computeCurveDersPoint(), vpImageTools::crop(), vpMeNurbs::display(), vpMeEllipse::display(), vpDisplayGTK::displayArrow(), vpDisplayX::displayArrow(), vpDisplayOpenCV::displayArrow(), vpDisplayGTK::displayCross(), vpDisplayX::displayCross(), vpDisplayOpenCV::displayCross(), vpDisplayOpenCV::displayDotLine(), vpDisplayGTK::displayImageROI(), vpDisplayX::displayImageROI(), vpDisplayOpenCV::displayImageROI(), vpKeyPoint::displayMatching(), vpMbtDistanceKltCylinder::displayPrimitive(), vpMbtDistanceKltPoints::displayPrimitive(), vpDisplayWin32::displayRectangle(), distance(), vpImageTools::extract(), vp::findContours(), vp::floodFill(), vpPolygon3D::getNbCornerInsideImage(), vpImage< double >::getValue(), vpImage< vpRGBa >::getValue(), vpImage< Type >::getValue(), vpPolygon::init(), vpMbtDistanceLine::initMovingEdge(), vpMbtDistanceCylinder::initMovingEdge(), vpMeEllipse::initTracking(), vpMeLine::initTracking(), vpDot2::initTracking(), vpDot::initTracking(), vpImage< Type >::insert(), vpImageTools::interpolate(), vpTriangle::inTriangle(), vpTemplateTrackerTriangle::inTriangle(), vpRectOriented::isInside(), vpPolygon::isInside(), vpRect::isInside(), vpWireFrameSimulator::navigation(), vpImage< bool >::operator()(), vpRectOriented::operator=(), vpMeTracker::outOfImage(), vpMeEllipse::printParameters(), vpNurbs::removeCurveKnot(), vpMeNurbs::seekExtremitiesCanny(), vpRectOriented::setOrientation(), vpRectOriented::setPoints(), vpRectOriented::setSize(), sqrDistance(), vpMeEllipse::track(), vpMbtDistanceLine::updateMovingEdge(), vpMbtDistanceCylinder::updateMovingEdge(), vpRectOriented::vpRectOriented(), vpXmlParserRectOriented::writeMainClass(), and vpMeEllipse::~vpMeEllipse().
|
inline |
Gets the point coordinate corresponding to the axes in the frame (i,j).
Definition at line 215 of file vpImagePoint.h.
Referenced by vpTriangle::buildFrom(), vpNurbs::computeCurveDersPoint(), vpImageTools::crop(), vpMeNurbs::display(), vpMeEllipse::display(), vpDisplayGTK::displayArrow(), vpDisplayX::displayArrow(), vpDisplayOpenCV::displayArrow(), vpDisplayGTK::displayCross(), vpDisplayX::displayCross(), vpDisplayOpenCV::displayCross(), vpDisplayOpenCV::displayDotLine(), vpDisplayGTK::displayImageROI(), vpDisplayX::displayImageROI(), vpDisplayOpenCV::displayImageROI(), vpKeyPoint::displayMatching(), vpMbtDistanceKltCylinder::displayPrimitive(), vpMbtDistanceKltPoints::displayPrimitive(), vpDisplayWin32::displayRectangle(), distance(), vpImageTools::extract(), vp::findContours(), vp::floodFill(), vpPolygon3D::getNbCornerInsideImage(), vpImage< double >::getValue(), vpImage< vpRGBa >::getValue(), vpImage< Type >::getValue(), vpPolygon::init(), vpMbtDistanceLine::initMovingEdge(), vpMbtDistanceCylinder::initMovingEdge(), vpMeEllipse::initTracking(), vpMeLine::initTracking(), vpDot2::initTracking(), vpDot::initTracking(), vpImage< Type >::insert(), vpImageTools::interpolate(), vpTriangle::inTriangle(), vpTemplateTrackerTriangle::inTriangle(), vpRectOriented::isInside(), vpPolygon::isInside(), vpRect::isInside(), vpWireFrameSimulator::navigation(), vpImage< bool >::operator()(), vpRectOriented::operator=(), vpMeTracker::outOfImage(), vpMeEllipse::printParameters(), vpNurbs::removeCurveKnot(), vpMeNurbs::seekExtremitiesCanny(), vpRectOriented::setOrientation(), vpRectOriented::setPoints(), vpRectOriented::setSize(), sqrDistance(), vpMeEllipse::track(), vpMbtDistanceLine::updateMovingEdge(), vpMbtDistanceCylinder::updateMovingEdge(), vpRectOriented::vpRectOriented(), vpXmlParserRectOriented::writeMainClass(), and vpMeEllipse::~vpMeEllipse().
|
inline |
Gets the point coordinate corresponding to the axes in the frame (u,v).
Definition at line 263 of file vpImagePoint.h.
Referenced by vpCalibration::computeStdDeviation(), vpCalibration::computeStdDeviation_dist(), vpPixelMeterConversion::convertPoint(), vpDot2::defineDots(), vpDisplayGTK::displayCharString(), vpDisplayX::displayCharString(), vpDisplayOpenCV::displayCharString(), vpDisplayGTK::displayCircle(), vpDisplayX::displayCircle(), vpDisplayOpenCV::displayCircle(), vpCalibration::displayData(), vpDisplayGTK::displayDotLine(), vpDisplayX::displayDotLine(), vpDisplayX::displayImageROI(), vpDisplayGTK::displayLine(), vpDisplayX::displayLine(), vpDisplayOpenCV::displayLine(), vpDisplayGTK::displayPoint(), vpDisplayX::displayPoint(), vpDisplayOpenCV::displayPoint(), vpDisplayGTK::displayRectangle(), vpDisplayX::displayRectangle(), vpDisplayOpenCV::displayRectangle(), vpDisplayWin32::flushDisplayROI(), vpDisplayX::flushDisplayROI(), vpDot2::getDistance(), vpDot2::getFreemanChain(), vpTemplateTrackerTriangle::init(), vpImageSimulator::init(), vpPolygon::isInside(), vpRect::moveCenter(), vpDot::operator==(), vpHomography::project(), vpHomography::projection(), vpDot2::searchDotsInArea(), vpRect::set(), vpRect::setBottomRight(), vpRect::setTopLeft(), vpDot2::track(), vpDot::track(), vpRect::vpRect(), vpTemplateTrackerTriangle::vpTemplateTrackerTriangle(), and vpCalibration::writeData().
|
inline |
Gets the point coordinate corresponding to the axes in the frame (u,v).
Definition at line 274 of file vpImagePoint.h.
Referenced by vpCalibration::computeStdDeviation(), vpCalibration::computeStdDeviation_dist(), vpPixelMeterConversion::convertPoint(), vpDot2::defineDots(), vpDisplayGTK::displayCharString(), vpDisplayX::displayCharString(), vpDisplayOpenCV::displayCharString(), vpDisplayGTK::displayCircle(), vpDisplayX::displayCircle(), vpDisplayOpenCV::displayCircle(), vpCalibration::displayData(), vpDisplayGTK::displayDotLine(), vpDisplayX::displayDotLine(), vpDisplayX::displayImageROI(), vpDisplayGTK::displayLine(), vpDisplayX::displayLine(), vpDisplayOpenCV::displayLine(), vpDisplayGTK::displayPoint(), vpDisplayX::displayPoint(), vpDisplayOpenCV::displayPoint(), vpDisplayGTK::displayRectangle(), vpDisplayX::displayRectangle(), vpDisplayOpenCV::displayRectangle(), vpDisplayWin32::flushDisplayROI(), vpDisplayX::flushDisplayROI(), vpDot2::getDistance(), vpDot2::getFreemanChain(), vpTemplateTrackerTriangle::init(), vpImageSimulator::init(), vpPolygon::isInside(), vpRect::moveCenter(), vpHomography::project(), vpHomography::projection(), vpDot2::searchDotsInArea(), vpRect::set(), vpRect::setBottomRight(), vpRect::setTopLeft(), vpDot2::track(), vpDot::track(), vpRect::vpRect(), vpTemplateTrackerTriangle::vpTemplateTrackerTriangle(), and vpCalibration::writeData().
|
static |
Computes and returns the bounding box.
ipVec | : Vector of input image points. |
Definition at line 442 of file vpImagePoint.cpp.
bool vpImagePoint::inRectangle | ( | const vpRect & | rect | ) | const |
Check if an image point belongs to a rectangle.
rect | : the rectangle. |
Definition at line 53 of file vpImagePoint.cpp.
References vpRect::getBottom(), vpRect::getLeft(), vpRect::getRight(), and vpRect::getTop().
Referenced by vpPlot::navigate().
|
inline |
Operator *=.
Definition at line 151 of file vpImagePoint.h.
vpImagePoint & vpImagePoint::operator+= | ( | const vpImagePoint & | ip | ) |
Operator +=.
This operator can be used to compute the center of gravity of a set of image points.
Definition at line 87 of file vpImagePoint.cpp.
|
inline |
Operator -=.
Definition at line 140 of file vpImagePoint.h.
vpImagePoint & vpImagePoint::operator/= | ( | const double | scale | ) |
Operator /=.
This operator can be used to compute the center of gravity of a set of image points.
Definition at line 121 of file vpImagePoint.cpp.
|
inline |
Copy operator.
Definition at line 115 of file vpImagePoint.h.
|
inline |
Move operator.
Definition at line 125 of file vpImagePoint.h.
|
inline |
Sets the point coordinate corresponding to the axes in the frame (i,j).
ii | : The desired value for the coordinate along the axes. |
Definition at line 167 of file vpImagePoint.h.
Referenced by vpBSpline::computeCurveDers(), vpNurbs::computeCurveDersPoint(), vpNurbs::computeCurvePoint(), vpBSpline::computeCurvePoint(), vpMeLine::computeRhoTheta(), vpMeLine::display(), vpMeEllipse::display(), vpDisplayGTK::displayArrow(), vpDisplayX::displayArrow(), vpDisplayOpenCV::displayArrow(), vpDisplayGTK::displayCross(), vpDisplayX::displayCross(), vpDisplayOpenCV::displayCross(), vpMbtDistanceKltCylinder::displayPrimitive(), vpMbtDistanceKltPoints::displayPrimitive(), vpDisplayWin32::displayRectangle(), vpMeLine::getExtremities(), vpMeSite::getQueryList(), vpImage< double >::getValue(), vpImage< Type >::getValue(), vpImage< vpRGBa >::getValue(), vpMeTracker::initTracking(), vpMeEllipse::initTracking(), vpMeLine::intersection(), vpPolygon::isInside(), vpRectOriented::operator=(), vpMeEllipse::printParameters(), vpXmlParserRectOriented::readMainClass(), vpNurbs::refineKnotVectCurve(), vpNurbs::removeCurveKnot(), vpMeLine::sample(), vpMeLine::seekExtremities(), vpImageSimulator::setCameraPosition(), vpRectOriented::setOrientation(), vpRectOriented::setPoints(), vpRectOriented::setSize(), vpMeSite::track(), vpPolygon::updateCenter(), vpMeEllipse::vpMeEllipse(), vpRectOriented::vpRectOriented(), and vpMeEllipse::~vpMeEllipse().
|
inline |
Sets the point coordinates in the frame (i,j).
ii | : The desired value for the coordinate along the axes. |
jj | : The desired value for the coordinate along the axes. |
Definition at line 189 of file vpImagePoint.h.
Referenced by vpKeyPoint::compute3DForPointsInPolygons(), vpBSpline::computeCurveDers(), vpNurbs::computeCurveDersPoint(), vpNurbs::curveKnotIns(), vpMbtDistanceKltCylinder::display(), vpMbtDistanceCylinder::display(), vpMeNurbs::display(), vpFeatureDisplay::displayLine(), vpKeyPoint::displayMatching(), vpImageSimulator::getImage(), vpBasicKeyPoint::getMatchedPoints(), vpImage< Type >::getMinMaxLoc(), vpBasicKeyPoint::getReferencePoint(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveInterp(), vpMbtDistanceCylinder::initMovingEdge(), vpMeEllipse::printParameters(), vpMeNurbs::seekExtremities(), vpMbtDistanceKltCylinder::updateMask(), vpMbtDistanceKltPoints::updateMask(), and vpMbtDistanceCylinder::updateMovingEdge().
|
inline |
Sets the point coordinate corresponding to the axes in the frame (i,j).
jj | : The desired value for the coordinate along the axes. |
Definition at line 178 of file vpImagePoint.h.
Referenced by vpBSpline::computeCurveDers(), vpNurbs::computeCurveDersPoint(), vpNurbs::computeCurvePoint(), vpBSpline::computeCurvePoint(), vpMeLine::computeRhoTheta(), vpMeLine::display(), vpMeEllipse::display(), vpDisplayGTK::displayArrow(), vpDisplayX::displayArrow(), vpDisplayOpenCV::displayArrow(), vpDisplayGTK::displayCross(), vpDisplayX::displayCross(), vpDisplayOpenCV::displayCross(), vpMbtDistanceKltCylinder::displayPrimitive(), vpMbtDistanceKltPoints::displayPrimitive(), vpDisplayWin32::displayRectangle(), vp::findContours(), vpMeLine::getExtremities(), vpMeSite::getQueryList(), vpImage< double >::getValue(), vpImage< Type >::getValue(), vpImage< vpRGBa >::getValue(), vpMeTracker::initTracking(), vpMeEllipse::initTracking(), vpMeLine::intersection(), vpPolygon::isInside(), vpRectOriented::operator=(), vpMeEllipse::printParameters(), vpXmlParserRectOriented::readMainClass(), vpNurbs::removeCurveKnot(), vpMeLine::sample(), vpMeLine::seekExtremities(), vpImageSimulator::setCameraPosition(), vpRectOriented::setOrientation(), vpRectOriented::setPoints(), vpRectOriented::setSize(), vpMeSite::track(), vpPolygon::updateCenter(), vpMeEllipse::vpMeEllipse(), vpRectOriented::vpRectOriented(), and vpMeEllipse::~vpMeEllipse().
|
inline |
Sets the point coordinate corresponding to the axes in the frame (u,v).
u | : The desired value for the coordinate along the axes. |
Definition at line 226 of file vpImagePoint.h.
Referenced by vpMeterPixelConversion::convertPoint(), vpKltOpencv::display(), vpCalibration::displayData(), vpCalibration::displayGrid(), vpRect::getBottomRight(), vpRect::getCenter(), vpDisplayWin32::getClick(), vpDisplayGTK::getClick(), vpDisplayX::getClick(), vpDisplayOpenCV::getClick(), vpDisplayWin32::getClickUp(), vpDisplayGTK::getClickUp(), vpDisplayX::getClickUp(), vpDisplayOpenCV::getClickUp(), vpDot2::getFreemanChain(), vpDisplayWin32::getPointerMotionEvent(), vpDisplayGTK::getPointerMotionEvent(), vpDisplayX::getPointerMotionEvent(), vpDisplayOpenCV::getPointerMotionEvent(), vpDisplayWin32::getPointerPosition(), vpDisplayGTK::getPointerPosition(), vpDisplayX::getPointerPosition(), vpDisplayOpenCV::getPointerPosition(), vpRect::getTopLeft(), vpKeyPoint::matchPointAndDetect(), vpDot::operator==(), vpHomography::projection(), vpCalibration::readData(), vpDot2::searchDotsInArea(), vpKltOpencv::suppressFeature(), and vpDot::track().
|
inline |
Sets the point coordinates in the frame (u,v).
u | : The desired value for the coordinate along the axes. |
v | : The desired value for the coordinate along the axes. |
Definition at line 248 of file vpImagePoint.h.
Referenced by vpDot2::defineDots(), vpTemplateTrackerZone::getCenter(), and vpTemplateTrackerTriangle::getCorners().
|
inline |
Sets the point coordinate corresponding to the axes in the frame (u,v).
v | : The desired value for the coordinate along the axes. |
Definition at line 237 of file vpImagePoint.h.
Referenced by vpMeterPixelConversion::convertPoint(), vpKltOpencv::display(), vpCalibration::displayData(), vpRect::getBottomRight(), vpRect::getCenter(), vpDisplayWin32::getClick(), vpDisplayGTK::getClick(), vpDisplayX::getClick(), vpDisplayOpenCV::getClick(), vpDisplayWin32::getClickUp(), vpDisplayGTK::getClickUp(), vpDisplayX::getClickUp(), vpDisplayOpenCV::getClickUp(), vpDot2::getFreemanChain(), vpDisplayWin32::getPointerMotionEvent(), vpDisplayGTK::getPointerMotionEvent(), vpDisplayX::getPointerMotionEvent(), vpDisplayOpenCV::getPointerMotionEvent(), vpDisplayWin32::getPointerPosition(), vpDisplayGTK::getPointerPosition(), vpDisplayX::getPointerPosition(), vpDisplayOpenCV::getPointerPosition(), vpRect::getTopLeft(), vpKeyPoint::matchPointAndDetect(), vpDot::operator==(), vpHomography::projection(), vpCalibration::readData(), vpDot2::searchDotsInArea(), vpKltOpencv::suppressFeature(), and vpDot::track().
|
inlinestatic |
Compute the distance
iP1 | : First point |
iP2 | : Second point |
Definition at line 301 of file vpImagePoint.h.
References get_i(), get_j(), operator*(), and vpMath::sqr().
Referenced by vpMeNurbs::localReSample(), and vpMeNurbs::sample().
|
friend |
Returns true if ip1 and ip2 are different; otherwire returns true.
Definition at line 155 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint with coordinates multiplied by a scale factor.
Definition at line 370 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint wich is the sum of and .
Definition at line 175 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint with an offset added to the two coordinates.
Definition at line 210 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint with an offset added to the two coordinates.
Definition at line 235 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint with an offset added to the two coordinates.
Definition at line 260 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint wich is the sum of and .
Definition at line 186 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint wich is the difference between and .
Definition at line 273 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint with an offset substracted to the two coordinates.
Definition at line 297 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint with an offset substracted to the two coordinates.
Definition at line 321 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint with an offset substracted to the two coordinates.
Definition at line 346 of file vpImagePoint.cpp.
|
friend |
Returns a vpImagePoint with coordinates divided by a scale factor.
Definition at line 394 of file vpImagePoint.cpp.
|
friend |
Writes the image point coordinates ip to the stream os, and returns a reference to the stream. Writes the first coordinate along the i axis and then the second one along the j axis. The coordinates are separated by a comma.
The following code
produces the output:
Image point with coordinates: 10, 11.1
Definition at line 431 of file vpImagePoint.cpp.
|
friend |
Returns true if ip1 and ip2 are equal; otherwire returns false.
Definition at line 134 of file vpImagePoint.cpp.