Visual Servoing Platform
version 3.2.0 under development (2019-01-22)
|
#include <visp3/tt/vpTemplateTrackerZone.h>
Public Member Functions | |
vpTemplateTrackerZone () | |
vpTemplateTrackerZone (const vpTemplateTrackerZone &z) | |
virtual | ~vpTemplateTrackerZone () |
void | add (const vpTemplateTrackerTriangle &t) |
void | clear () |
void | copy (const vpTemplateTrackerZone &z) |
void | display (const vpImage< unsigned char > &I, const vpColor &col=vpColor::green, const unsigned int thickness=3) |
void | display (const vpImage< vpRGBa > &I, const vpColor &col=vpColor::green, const unsigned int thickness=3) |
void | fillTriangle (vpImage< unsigned char > &I, unsigned int id, unsigned char gray_level) |
double | getArea () const |
vpImagePoint | getCenter () const |
vpImagePoint | getCenter (int borne_x, int borne_y) const |
int | getMaxx () const |
int | getMaxy () const |
int | getMinx () const |
int | getMiny () const |
vpRect | getBoundingBox () const |
unsigned int | getNbTriangle () const |
vpTemplateTrackerZone | getPyramidDown () const |
void | getTriangle (unsigned int i, vpTemplateTrackerTriangle &T) const |
vpTemplateTrackerTriangle | getTriangle (unsigned int i) const |
void | initClick (const vpImage< unsigned char > &I, bool delaunay=false) |
void | initFromPoints (const vpImage< unsigned char > &I, const std::vector< vpImagePoint > &ip, bool delaunay=false) |
bool | inZone (const int &i, const int &j) const |
bool | inZone (const double &i, const double &j) const |
bool | inZone (const int &i, const int &j, unsigned int &id_triangle) const |
bool | inZone (const double &i, const double &j, unsigned int &id_triangle) const |
vpTemplateTrackerZone & | operator= (const vpTemplateTrackerZone &z) |
Protected Attributes | |
std::vector< vpTemplateTrackerTriangle > | Zone |
int | min_x |
int | min_y |
int | max_x |
int | max_y |
A zone is defined by a set of triangles defined as vpTemplateTrackerTriangle.
A zone can be initialized either by user interaction using mouse click in a display device throw initClick(), or by a list of points throw initFromPoints().
Definition at line 62 of file vpTemplateTrackerZone.h.
vpTemplateTrackerZone::vpTemplateTrackerZone | ( | ) |
Default constructor.
Definition at line 54 of file vpTemplateTrackerZone.cpp.
vpTemplateTrackerZone::vpTemplateTrackerZone | ( | const vpTemplateTrackerZone & | z | ) |
Copy constructor.
Definition at line 59 of file vpTemplateTrackerZone.cpp.
|
virtual |
void vpTemplateTrackerZone::add | ( | const vpTemplateTrackerTriangle & | t | ) |
Add a triangle to the zone and update the bounding box.
t | : Triangle to introduce in the zone. |
Definition at line 249 of file vpTemplateTrackerZone.cpp.
References vpTemplateTrackerTriangle::getMaxx(), vpTemplateTrackerTriangle::getMaxy(), vpTemplateTrackerTriangle::getMinx(), vpTemplateTrackerTriangle::getMiny(), max_x, max_y, min_x, min_y, and Zone.
Referenced by copy(), getPyramidDown(), initFromPoints(), and vpTemplateTrackerWarp::warpZone().
void vpTemplateTrackerZone::clear | ( | ) |
Remove all the triangles that define the zone.
Definition at line 68 of file vpTemplateTrackerZone.cpp.
References max_x, max_y, min_x, min_y, and Zone.
Referenced by operator=(), vpTemplateTrackerWarp::warpZone(), and ~vpTemplateTrackerZone().
void vpTemplateTrackerZone::copy | ( | const vpTemplateTrackerZone & | z | ) |
Copy all the triangles that define zone Z
in the current zone (*this) and update the zone bounding box.
z | : Zone with a set of triangles provided as input. |
Definition at line 522 of file vpTemplateTrackerZone.cpp.
References add(), vpTemplateTrackerTriangle::getMaxx(), vpTemplateTrackerTriangle::getMaxy(), vpTemplateTrackerTriangle::getMinx(), vpTemplateTrackerTriangle::getMiny(), getNbTriangle(), getTriangle(), max_x, max_y, min_x, and min_y.
Referenced by vpTemplateTracker::initTrackingPyr(), and operator=().
void vpTemplateTrackerZone::display | ( | const vpImage< unsigned char > & | I, |
const vpColor & | col = vpColor::green , |
||
const unsigned int | thickness = 3 |
||
) |
If a display device is associated to image I
, display in overlay the triangles that define the zone.
I | : Image. |
col | : Color used to display the triangles. |
thickness | : Thickness of the triangle lines. |
Definition at line 446 of file vpTemplateTrackerZone.cpp.
References vpDisplay::displayLine(), and Zone.
Referenced by vpTemplateTracker::display().
void vpTemplateTrackerZone::display | ( | const vpImage< vpRGBa > & | I, |
const vpColor & | col = vpColor::green , |
||
const unsigned int | thickness = 3 |
||
) |
If a display device is associated to image I
, display in overlay the triangles that define the zone.
I | : Image. |
col | : Color used to display the triangles. |
thickness | : Thickness of the triangle lines. |
Definition at line 463 of file vpTemplateTrackerZone.cpp.
References vpDisplay::displayLine(), and Zone.
void vpTemplateTrackerZone::fillTriangle | ( | vpImage< unsigned char > & | I, |
unsigned int | id, | ||
unsigned char | gray_level | ||
) |
Modify all the pixels inside a triangle with a given gray level.
I | Output image. |
id | Triangle id. This value should be less than the number of triangles used to define the zone and available using getNbTriangle(). |
gray_level | Color used to fill the triangle with. |
Definition at line 487 of file vpTemplateTrackerZone.cpp.
References vpImage< Type >::getHeight(), getNbTriangle(), getTriangle(), vpImage< Type >::getWidth(), and vpTemplateTrackerTriangle::inTriangle().
double vpTemplateTrackerZone::getArea | ( | ) | const |
Return the area of the template zone.
Definition at line 573 of file vpTemplateTrackerZone.cpp.
References vpTemplateTrackerTriangle::getArea(), getNbTriangle(), and getTriangle().
vpRect vpTemplateTrackerZone::getBoundingBox | ( | ) | const |
Return a rectangle that defines the bounding box of the zone.
Definition at line 433 of file vpTemplateTrackerZone.cpp.
References max_x, max_y, min_x, min_y, vpRect::setBottomRight(), and vpRect::setTopLeft().
vpImagePoint vpTemplateTrackerZone::getCenter | ( | ) | const |
Return the position of the center of gravity of the zone.
vpException::divideByZeroError | The size of the zone is null. |
Definition at line 386 of file vpTemplateTrackerZone.cpp.
References vpException::divideByZeroError, inZone(), max_x, max_y, min_x, min_y, and vpImagePoint::set_uv().
vpImagePoint vpTemplateTrackerZone::getCenter | ( | int | borne_x, |
int | borne_y | ||
) | const |
Return the position of the center of gravity in a given area.
borne_x | : Right coordinate of the area to consider. |
borne_y | : Bottom coordinate of the area to consider. |
vpException::divideByZeroError | The size of the zone is null. |
Definition at line 547 of file vpTemplateTrackerZone.cpp.
References vpException::divideByZeroError, inZone(), and vpImagePoint::set_uv().
int vpTemplateTrackerZone::getMaxx | ( | ) | const |
Definition at line 412 of file vpTemplateTrackerZone.cpp.
References max_x.
int vpTemplateTrackerZone::getMaxy | ( | ) | const |
Definition at line 417 of file vpTemplateTrackerZone.cpp.
References max_y.
int vpTemplateTrackerZone::getMinx | ( | ) | const |
Definition at line 422 of file vpTemplateTrackerZone.cpp.
References min_x.
int vpTemplateTrackerZone::getMiny | ( | ) | const |
Definition at line 427 of file vpTemplateTrackerZone.cpp.
References min_y.
|
inline |
Return the number of triangles that define the zone.
Definition at line 100 of file vpTemplateTrackerZone.h.
Referenced by vpTemplateTrackerZNCCInverseCompositional::computeEvalRMS(), vpTemplateTrackerSSDInverseCompositional::computeEvalRMS(), vpTemplateTrackerMIForwardAdditional::computeEvalRMS(), vpTemplateTrackerMIInverseCompositional::computeEvalRMS(), copy(), fillTriangle(), getArea(), vpTemplateTrackerWarp::getDistanceBetweenZoneAndWarpedZone(), getPyramidDown(), getTriangle(), vpTemplateTrackerZNCCInverseCompositional::initPosEvalRMS(), vpTemplateTrackerSSDInverseCompositional::initPosEvalRMS(), vpTemplateTrackerMIForwardAdditional::initPosEvalRMS(), vpTemplateTrackerMIInverseCompositional::initPosEvalRMS(), and vpTemplateTrackerWarp::warpZone().
vpTemplateTrackerZone vpTemplateTrackerZone::getPyramidDown | ( | ) | const |
Return a zone with triangles that are down scaled by a factor 2.
Definition at line 504 of file vpTemplateTrackerZone.cpp.
References add(), getNbTriangle(), vpTemplateTrackerTriangle::getPyramidDown(), and getTriangle().
Referenced by vpTemplateTracker::initTrackingPyr().
void vpTemplateTrackerZone::getTriangle | ( | unsigned int | i, |
vpTemplateTrackerTriangle & | T | ||
) | const |
A zone is defined by a set of triangles. This function returns the ith triangle.
i | : Index of the triangle to return. |
T | : The triangle corresponding to index i. |
The following sample code shows how to use this function:
Definition at line 354 of file vpTemplateTrackerZone.cpp.
References vpException::badValue, getNbTriangle(), and Zone.
Referenced by vpTemplateTrackerZNCCInverseCompositional::computeEvalRMS(), vpTemplateTrackerSSDInverseCompositional::computeEvalRMS(), vpTemplateTrackerMIForwardAdditional::computeEvalRMS(), vpTemplateTrackerMIInverseCompositional::computeEvalRMS(), copy(), fillTriangle(), getArea(), vpTemplateTrackerWarp::getDistanceBetweenZoneAndWarpedZone(), getPyramidDown(), vpTemplateTrackerZNCCInverseCompositional::initPosEvalRMS(), vpTemplateTrackerSSDInverseCompositional::initPosEvalRMS(), vpTemplateTrackerMIForwardAdditional::initPosEvalRMS(), vpTemplateTrackerMIInverseCompositional::initPosEvalRMS(), and vpTemplateTrackerWarp::warpZone().
vpTemplateTrackerTriangle vpTemplateTrackerZone::getTriangle | ( | unsigned int | i | ) | const |
A zone is defined by a set of triangles. This function returns the ith triangle.
i | : Index of the triangle to return. |
The following sample code shows how to use this function:
Definition at line 375 of file vpTemplateTrackerZone.cpp.
References vpException::badValue, getNbTriangle(), and Zone.
void vpTemplateTrackerZone::initClick | ( | const vpImage< unsigned char > & | I, |
bool | delaunay = false |
||
) |
Initialize a zone in image I using mouse click.
I | : Image used to select the zone. |
delaunay | : Flag used to enable Delaunay triangulation.
|
Definition at line 111 of file vpTemplateTrackerZone.cpp.
References vpColor::blue, vpMouseButton::button3, vpDisplay::displayCross(), vpDisplay::displayLine(), vpDisplay::flush(), vpDisplay::getClick(), initFromPoints(), vpColor::red, vpTime::wait(), and Zone.
Referenced by vpTemplateTracker::initClick().
void vpTemplateTrackerZone::initFromPoints | ( | const vpImage< unsigned char > & | I, |
const std::vector< vpImagePoint > & | vip, | ||
bool | delaunay = false |
||
) |
Initialize the zone using a vector of image points.
I | : Image to process. |
vip | : Vector of image points used as initialization. |
delaunay | :
|
Definition at line 168 of file vpTemplateTrackerZone.cpp.
References add(), vpException::functionNotImplementedError, vpImage< Type >::getHeight(), vpTemplateTrackerTriangle::getMaxx(), vpTemplateTrackerTriangle::getMaxy(), vpTemplateTrackerTriangle::getMinx(), vpTemplateTrackerTriangle::getMiny(), vpImage< Type >::getWidth(), max_x, max_y, min_x, min_y, and Zone.
Referenced by initClick(), and vpTemplateTracker::initFromPoints().
bool vpTemplateTrackerZone::inZone | ( | const int & | i, |
const int & | j | ||
) | const |
Test if a pixel with coordinates (i,j) is in the zone..
i,j | : Coordinates of the pixel to test. |
Definition at line 270 of file vpTemplateTrackerZone.cpp.
References Zone.
Referenced by getCenter(), and vpTemplateTracker::initTracking().
bool vpTemplateTrackerZone::inZone | ( | const double & | i, |
const double & | j | ||
) | const |
Test if a pixel with coordinates (i,j) is in the zone..
i,j | : Coordinates of the pixel to test. |
Definition at line 286 of file vpTemplateTrackerZone.cpp.
References Zone.
bool vpTemplateTrackerZone::inZone | ( | const int & | i, |
const int & | j, | ||
unsigned int & | id_triangle | ||
) | const |
Test if a pixel with coordinates (i,j) is in the zone and returns also the index of the triangle that contains the pixel.
i,j | : Coordinates of the pixel to test. |
id_triangle | : Index of the triangle that contains the pixel (i,j). |
Definition at line 303 of file vpTemplateTrackerZone.cpp.
References Zone.
bool vpTemplateTrackerZone::inZone | ( | const double & | i, |
const double & | j, | ||
unsigned int & | id_triangle | ||
) | const |
Test if a pixel with coordinates (i,j) is in the zone and returns also the index of the triangle that contains the pixel.
i,j | : Coordinates of the pixel to test. |
id_triangle | : Index of the triangle that contains the pixel (i,j). |
Definition at line 324 of file vpTemplateTrackerZone.cpp.
References Zone.
vpTemplateTrackerZone & vpTemplateTrackerZone::operator= | ( | const vpTemplateTrackerZone & | z | ) |
Copy operator.
Definition at line 81 of file vpTemplateTrackerZone.cpp.
|
protected |
Bounding box parameter.
Definition at line 68 of file vpTemplateTrackerZone.h.
Referenced by add(), clear(), copy(), getBoundingBox(), getCenter(), getMaxx(), and initFromPoints().
|
protected |
Bounding box parameter.
Definition at line 69 of file vpTemplateTrackerZone.h.
Referenced by add(), clear(), copy(), getBoundingBox(), getCenter(), getMaxy(), and initFromPoints().
|
protected |
Bounding box parameter.
Definition at line 66 of file vpTemplateTrackerZone.h.
Referenced by add(), clear(), copy(), getBoundingBox(), getCenter(), getMinx(), and initFromPoints().
|
protected |
Bounding box parameter.
Definition at line 67 of file vpTemplateTrackerZone.h.
Referenced by add(), clear(), copy(), getBoundingBox(), getCenter(), getMiny(), and initFromPoints().
|
protected |
Vector of triangles that defines the zone.
Definition at line 65 of file vpTemplateTrackerZone.h.
Referenced by add(), clear(), display(), getTriangle(), initClick(), initFromPoints(), and inZone().