ViSP
2.8.0
|
#include <vpDot2.h>
Public Member Functions | |
vpDot2 () | |
vpDot2 (const vpImagePoint &ip) | |
vpDot2 (const vpDot2 &twinDot) | |
virtual | ~vpDot2 () |
void | display (const vpImage< unsigned char > &I, vpColor color=vpColor::red, unsigned int thickness=1) |
double | getArea () const |
vpRect | getBBox () |
vpImagePoint | getCog () const |
double | getDistance (const vpDot2 &distantDot) const |
void | getEdges (std::list< vpImagePoint > &edges_list) |
double | getEllipsoidBadPointsPercentage () |
double | getEllipsoidShapePrecision () const |
void | getFreemanChain (std::list< unsigned int > &freeman_chain) |
double | getGamma () |
unsigned int | getGrayLevelMin () const |
unsigned int | getGrayLevelMax () const |
double | getGrayLevelPrecision () const |
double | getHeight () const |
double | getMaxSizeSearchDistancePrecision () const |
double | getMeanGrayLevel () |
double | getSizePrecision () const |
double | getSurface () const |
double | getWidth () const |
void | initTracking (const vpImage< unsigned char > &I, unsigned int size=0) |
void | initTracking (const vpImage< unsigned char > &I, const vpImagePoint &ip, unsigned int size=0) |
void | initTracking (const vpImage< unsigned char > &I, const vpImagePoint &ip, unsigned int gray_level_min, unsigned int gray_level_max, unsigned int size=0) |
void | operator= (const vpDot2 &twinDot) |
void | print (std::ostream &os) |
void | searchDotsInArea (const vpImage< unsigned char > &I, int area_u, int area_v, unsigned int area_w, unsigned int area_h, std::list< vpDot2 > &niceDots) |
void | searchDotsInArea (const vpImage< unsigned char > &I, std::list< vpDot2 > &niceDots) |
void | setArea (const double &area) |
void | setCog (const vpImagePoint &cog) |
void | setComputeMoments (const bool activate) |
void | setEllipsoidBadPointsPercentage (const double &percentage=0.0) |
void | setEllipsoidShapePrecision (const double &ellipsoidShapePrecision) |
void | setGraphics (const bool activate) |
void | setGraphicsThickness (unsigned int thickness) |
void | setGrayLevelMin (const unsigned int &min) |
void | setGrayLevelMax (const unsigned int &max) |
void | setGrayLevelPrecision (const double &grayLevelPrecision) |
void | setHeight (const double &height) |
void | setMaxSizeSearchDistancePrecision (const double &maxSizeSearchDistancePrecision) |
void | setSizePrecision (const double &sizePrecision) |
void | setSurface (const double &surface) |
void | setWidth (const double &width) |
void | track (const vpImage< unsigned char > &I) |
void | track (const vpImage< unsigned char > &I, vpImagePoint &cog) |
Static Public Member Functions | |
static vpMatrix | defineDots (vpDot2 dot[], const unsigned int &n, const std::string &dotFile, vpImage< unsigned char > &I, vpColor col=vpColor::blue, bool trackDot=true) |
static void | trackAndDisplay (vpDot2 dot[], const unsigned int &n, vpImage< unsigned char > &I, std::vector< vpImagePoint > &cogs, vpImagePoint *cogStar=NULL) |
Public Attributes | |
double | m00 |
double | m10 |
double | m01 |
double | m11 |
double | m20 |
double | m02 |
double | mu11 |
double | mu20 |
double | mu02 |
vpColVector | p |
vpColVector | cP |
bool | cPAvailable |
Friends | |
VISP_EXPORT std::ostream & | operator<< (std::ostream &os, vpDot2 &d) |
Deprecated functions | |
vp_deprecated void | getEdges (vpList< vpImagePoint > &edges_list) |
vp_deprecated void | getFreemanChain (vpList< unsigned int > &freeman_chain) |
vp_deprecated vpList< vpDot2 > * | searchDotsInArea (const vpImage< unsigned char > &I, int area_u, int area_v, unsigned int area_w, unsigned int area_h) |
vpList< vpDot2 > * | searchDotsInArea (const vpImage< unsigned char > &I) |
static void | display (const vpImage< unsigned char > &I, const vpImagePoint &cog, const std::list< vpImagePoint > &edges_list, vpColor color=vpColor::red, unsigned int thickness=1) |
static void | display (const vpImage< vpRGBa > &I, const vpImagePoint &cog, const std::list< vpImagePoint > &edges_list, vpColor color=vpColor::red, unsigned int thickness=1) |
This tracker is meant to track a blob (connex pixels with same gray level) on a vpImage.
The underground algorithm is based on a binarisation of the image and then on a contour detection using the Freeman chain coding to determine the blob characteristics (location, moments, size...).
The binarisation is done using gray level minimum and maximum values that define the admissible gray levels of the blob. You can specify these levels by setGrayLevelMin() and setGrayLevelMax(). These levels are also set automatically by setGrayLevelPrecision(). The algorithm allows to track white objects on a black background and vice versa.
When a blob is found, some tests are done to see if it is valid:
Note that track() and searchDotsInArea() are the most important features of this class.
The following sample code available in tutorial-blob-tracker.cpp shows how to grab images from a firewire camera, track a blob and display the tracking results.
A line by line explanation of the previous example is provided in Tutorial: Blob tracking.
This other example available in tutorial-blob-auto-tracker.cpp shows firstly how to detect in the first image all the blobs that match some characteristics in terms of size, area, gray level. Secondly, it shows how to track all the dots that are detected.
A line by line explanation of this last example is also provided in Tutorial: Blob tracking, section Blob tracking.
vpDot2::vpDot2 | ( | ) |
Default constructor. Just do basic default initialization.
Definition at line 107 of file vpDot2.cpp.
vpDot2::vpDot2 | ( | const vpImagePoint & | ip | ) |
Constructor initialize the coordinates of the gravity center of the dot to the image point ip. Rest is the same as the default constructor.
ip | : An image point with sub-pixel coordinates. |
Definition at line 120 of file vpDot2.cpp.
vpDot2::vpDot2 | ( | const vpDot2 & | twinDot | ) |
Copy constructor.
Definition at line 130 of file vpDot2.cpp.
|
virtual |
Destructor... do nothing for the moment.
Definition at line 186 of file vpDot2.cpp.
|
static |
Define a number of dots from a file. If the file does not exist, define it by clicking an image, the dots are then saved into the file.
If the dots from the file cannot be tracked in the image, will ask to click them.
dot | : dot2 array |
n | : number of dots, array dimension |
dotFile | : path for the file |
I | : image |
col | : color to print the dots (default Blue) |
trackDot | : if true, tracks the dots in the image, if false simply loads the coordinates (default true) |
Definition at line 3042 of file vpDot2.cpp.
References vpIoTools::checkFilename(), vpDisplay::display(), vpDisplay::displayCross(), vpDisplay::flush(), vpImagePoint::get_u(), vpImagePoint::get_v(), vpDisplay::getClick(), getCog(), getDistance(), getHeight(), vpMatrix::getRows(), getWidth(), initTracking(), vpMatrix::loadMatrix(), vpMatrix::saveMatrix(), vpImagePoint::set_uv(), setCog(), setGraphics(), vpMath::sqr(), and track().
void vpDot2::display | ( | const vpImage< unsigned char > & | I, |
vpColor | color = vpColor::red , |
||
unsigned int | thickness = 1 |
||
) |
Display in overlay the dot edges and center of gravity.
I | : Image. |
color | : The color used for the display. |
thickness | : Thickness of the displayed cross located at the dot cog. |
Definition at line 201 of file vpDot2.cpp.
References vpDisplay::displayCross(), and vpDisplay::displayPoint().
|
static |
Display the dot center of gravity and its list of edges.
I | : The image used as background. |
cog | : The center of gravity. |
edges_list | : The list of edges; |
color | : Color used to display the dot. |
thickness | : Thickness of the dot. |
Definition at line 3188 of file vpDot2.cpp.
References vpDisplay::displayCross(), and vpDisplay::displayPoint().
|
static |
Display the dot center of gravity and its list of edges.
I | : The image used as background. |
cog | : The center of gravity. |
edges_list | : The list of edges; |
color | : Color used to display the dot. |
thickness | : Thickness of the dot. |
Definition at line 3215 of file vpDot2.cpp.
References vpDisplay::displayCross(), and vpDisplay::displayPoint().
double vpDot2::getArea | ( | ) | const |
Return the area of the dot.
The area of the dot is also given by .
Definition at line 661 of file vpDot2.cpp.
Referenced by track().
|
inline |
Return the dot bounding box.
Definition at line 152 of file vpDot2.h.
References vpRect::setRect().
|
inline |
Return the location of the dot center of gravity.
Definition at line 167 of file vpDot2.h.
Referenced by vpFeatureBuilder::create(), defineDots(), getDistance(), searchDotsInArea(), track(), and trackAndDisplay().
double vpDot2::getDistance | ( | const vpDot2 & | distantDot | ) | const |
Return the distance between the two center of dots.
Definition at line 710 of file vpDot2.cpp.
References vpImagePoint::get_u(), vpImagePoint::get_v(), and getCog().
Referenced by defineDots().
|
inline |
Return the list of all the image points on the dot border.
edges_list | : The list of all the images points on the dot border. This list is update after a call to track(). |
|
inline |
edges_list | : The list of all the images points on the dot border. This list is update after a call to track(). |
Definition at line 447 of file vpDot2.h.
References vpList< type >::kill().
|
inline |
Get the percentage of sampled points that are considered non conform in terms of the gray level on the inner and the ouside ellipses.
double vpDot2::getEllipsoidShapePrecision | ( | ) | const |
Return the precision of the ellipsoid shape of the dot. It is a double precision float witch value is in [0,1]. 1 means full precision, whereas values close to 0 show a very bad precision.
Definition at line 693 of file vpDot2.cpp.
void vpDot2::getFreemanChain | ( | std::list< unsigned int > & | freeman_chain | ) |
Returns the list of Freeman chain code used to turn around the dot counterclockwise.
Definition at line 2235 of file vpDot2.cpp.
void vpDot2::getFreemanChain | ( | vpList< unsigned int > & | freeman_chain | ) |
Definition at line 2210 of file vpDot2.cpp.
References vpList< type >::kill().
|
inline |
Return the color level of pixels inside the dot.
Definition at line 212 of file vpDot2.h.
Referenced by searchDotsInArea().
|
inline |
Return the color level of pixels inside the dot.
Definition at line 204 of file vpDot2.h.
Referenced by searchDotsInArea().
double vpDot2::getGrayLevelPrecision | ( | ) | const |
Return the precision of the gray level of the dot. It is a double precision float witch value is in ]0,1]. 1 means full precision, whereas values close to 0 show a very bad precision.
Definition at line 671 of file vpDot2.cpp.
Referenced by searchDotsInArea().
double vpDot2::getHeight | ( | ) | const |
Return the height of the dot.
Definition at line 637 of file vpDot2.cpp.
Referenced by defineDots(), searchDotsInArea(), and track().
double vpDot2::getMaxSizeSearchDistancePrecision | ( | ) | const |
Return the precision of the search maximum distance to get the starting point on a dot border. It is a double precision float witch value is in [0.05,1]. 1 means full precision, whereas values close to 0 show a very bad precision.
Definition at line 703 of file vpDot2.cpp.
|
inline |
double vpDot2::getSizePrecision | ( | ) | const |
Return the precision of the size of the dot. It is a double precision float witch value is in ]0,1]. 1 means full precision, whereas values close to 0 show a very bad precision.
Definition at line 681 of file vpDot2.cpp.
Referenced by searchDotsInArea().
double vpDot2::getSurface | ( | ) | const |
Return the area of the dot.
The area of the dot is also given by .
Definition at line 652 of file vpDot2.cpp.
double vpDot2::getWidth | ( | ) | const |
Return the width of the dot.
Definition at line 627 of file vpDot2.cpp.
Referenced by defineDots(), searchDotsInArea(), and track().
void vpDot2::initTracking | ( | const vpImage< unsigned char > & | I, |
unsigned int | size = 0 |
||
) |
Initialize the tracking with a mouse click on the image and update the dot characteristics (center of gravity, moments) by a call to track().
Wait a user click in a white area in the image. The clicked pixel will be the starting point from which the dot will be tracked.
To get center of gravity of the dot, see getCog(). To compute the moments see setComputeMoments(). To get the width or height of the dot, call getWidth() and getHeight(). The area of the dot is given by getArea().
I | : Image. |
size | : Size of the dot to track. |
If no valid dot was found in the window, return an exception.
vpTrackingException::featureLostError | : If the dot initialization failed. The initialization can fail if the following characteristics are not valid;
|
Definition at line 245 of file vpDot2.cpp.
References vpImagePoint::get_i(), vpImagePoint::get_j(), vpDisplay::getClick(), setHeight(), setWidth(), track(), and vpERROR_TRACE.
Referenced by defineDots().
void vpDot2::initTracking | ( | const vpImage< unsigned char > & | I, |
const vpImagePoint & | ip, | ||
unsigned int | size = 0 |
||
) |
Initialize the tracking for a dot supposed to be located at (u,v) and update the dot characteristics (center of gravity, moments) by a call to track().
I | : Image to process. |
ip | : Location of the starting point from which the dot will be tracked in the image. |
size | : Size of the dot to track. |
To get center of gravity of the dot, see getCog(). To compute the moments see setComputeMoments().
If no valid dot was found in the window, return an exception.
vpTrackingException::featureLostError | : If the dot initialization failed. The initialization can fail if the following characteristics are not valid;
|
Definition at line 306 of file vpDot2.cpp.
References vpImagePoint::get_i(), vpImagePoint::get_j(), setHeight(), setWidth(), track(), and vpERROR_TRACE.
void vpDot2::initTracking | ( | const vpImage< unsigned char > & | I, |
const vpImagePoint & | ip, | ||
unsigned int | gray_level_min, | ||
unsigned int | gray_level_max, | ||
unsigned int | size = 0 |
||
) |
Initialize the tracking for a dot supposed to be located at (u,v) and update the dot characteristics (center of gravity, moments) by a call to track().
The sub pixel coordinates of the dot are updated. To get the center of gravity coordinates of the dot, use getCog(). To compute the moments use setComputeMoments(true) before a call to initTracking().
I | : Image to process. |
ip | : Location of the starting point from which the dot will be tracked in the image. |
gray_level_min | : Minimum gray level threshold used to segment the dot; value comprised between 0 and 255. |
gray_level_max | : Maximum gray level threshold used to segment the dot; value comprised between 0 and 255. gray_level_max should be greater than gray_level_min. |
size | : Size of the dot to track. |
If no valid dot was found in the window, return an exception.
vpTrackingException::featureLostError | : If the dot initialization failed. The initialization can fail if the following characteristics are not valid;
|
Definition at line 380 of file vpDot2.cpp.
References setHeight(), setWidth(), track(), and vpERROR_TRACE.
void vpDot2::operator= | ( | const vpDot2 & | twinDot | ) |
void vpDot2::searchDotsInArea | ( | const vpImage< unsigned char > & | I, |
int | area_u, | ||
int | area_v, | ||
unsigned int | area_w, | ||
unsigned int | area_h, | ||
std::list< vpDot2 > & | niceDots | ||
) |
Look for a list of dot matching this dot parameters within a region of interest defined by a rectangle in the image. The rectangle upper-left coordinates are given by (area_u, area_v). The size of the rectangle is given by area_w and area_h.
I | : Image to process. |
area_u | : Coordinate (column) of the upper-left area corner. |
area_v | : Coordinate (row) of the upper-left area corner. |
area_w | : Width or the area in which a dot is searched. |
area_h | : Height or the area in which a dot is searched. |
niceDots | List of the dots that are found. |
Definition at line 1619 of file vpDot2.cpp.
References vpColor::blue, vpDisplay::displayRectangle(), vpDisplay::flush(), vpImagePoint::get_u(), vpImagePoint::get_v(), vpRect::getBottom(), getCog(), getGrayLevelMax(), getGrayLevelMin(), getGrayLevelPrecision(), getHeight(), vpRect::getLeft(), vpRect::getRight(), getSizePrecision(), vpRect::getTop(), getWidth(), vpMath::maximum(), vpImagePoint::set_u(), vpImagePoint::set_v(), setArea(), setCog(), setComputeMoments(), setEllipsoidShapePrecision(), setGraphics(), setGraphicsThickness(), setGrayLevelMax(), setGrayLevelMin(), setGrayLevelPrecision(), setSizePrecision(), and vpTRACE.
Referenced by searchDotsInArea(), and track().
void vpDot2::searchDotsInArea | ( | const vpImage< unsigned char > & | I, |
std::list< vpDot2 > & | niceDots | ||
) |
Look for a list of dot matching this dot parameters within the entire image.
I | : Image. |
niceDots | List of the dots that are found. |
Before calling this method, dot characteristics to found have to be set like:
To search dots in the whole image:
The number of dots found in the area is given by:
To parse all the dots:
Definition at line 1593 of file vpDot2.cpp.
References vpImage< Type >::getHeight(), vpImage< Type >::getWidth(), and searchDotsInArea().
vpList< vpDot2 > * vpDot2::searchDotsInArea | ( | const vpImage< unsigned char > & | I, |
int | area_u, | ||
int | area_v, | ||
unsigned int | area_w, | ||
unsigned int | area_h | ||
) |
I | : Image to process. |
area_u | : Coordinate (column) of the upper-left area corner. |
area_v | : Coordinate (row) of the upper-left area corner. |
area_w | : Width or the area in which a dot is searched. |
area_h | : Height or the area in which a dot is searched. |
Definition at line 1305 of file vpDot2.cpp.
References vpList< type >::addLeft(), vpList< type >::addRight(), vpColor::blue, vpDisplay::displayRectangle(), vpList< type >::end(), vpList< type >::front(), vpImagePoint::get_u(), vpImagePoint::get_v(), vpRect::getBottom(), getCog(), getGrayLevelMax(), getGrayLevelMin(), getGrayLevelPrecision(), getHeight(), vpRect::getLeft(), vpRect::getRight(), getSizePrecision(), vpRect::getTop(), getWidth(), vpMath::maximum(), vpList< type >::next(), vpList< type >::outside(), vpImagePoint::set_u(), vpImagePoint::set_v(), setArea(), vpList< type >::value(), and vpTRACE.
I | : Image. |
Before calling this method, dot characteristics to found have to be set like:
To search dots in the whole image:
The number of dots found in the area is given by:
To parse all the dots:
To free memory associated to the list of dots:
Definition at line 1033 of file vpDot2.cpp.
References vpList< type >::addLeft(), vpList< type >::addRight(), vpColor::blue, vpDisplay::displayRectangle(), vpList< type >::end(), vpList< type >::front(), vpImagePoint::get_u(), vpImagePoint::get_v(), vpRect::getBottom(), getCog(), getGrayLevelMax(), getGrayLevelMin(), getGrayLevelPrecision(), vpImage< Type >::getHeight(), getHeight(), vpRect::getLeft(), vpRect::getRight(), getSizePrecision(), vpRect::getTop(), vpImage< Type >::getWidth(), getWidth(), vpMath::maximum(), vpList< type >::next(), vpList< type >::outside(), vpImagePoint::set_u(), vpImagePoint::set_v(), setArea(), vpList< type >::value(), and vpTRACE.
void vpDot2::setArea | ( | const double & | area | ) |
Set the area of the dot. This is meant to be used to search a dot in a region of interest.
area | : Area of a dot to search in a region of interest. |
Definition at line 775 of file vpDot2.cpp.
Referenced by searchDotsInArea(), and track().
|
inline |
Initialize the dot coordinates with cog.
Definition at line 257 of file vpDot2.h.
Referenced by defineDots(), searchDotsInArea(), and track().
|
inline |
Activates the dot's moments computation.
activate | true, if you want to compute the moments. If false, moments are not computed. |
Computed moment are vpDot::m00, vpDot::m10, vpDot::m01, vpDot::m11, vpDot::m20, vpDot::m02.
The coordinates of the region's centroid (u, v) can be computed from the moments by and .
Definition at line 274 of file vpDot2.h.
Referenced by searchDotsInArea().
|
inline |
Set the percentage of sampled points that are considered non conform in terms of the gray level on the inner and the ouside ellipses. Points located on the inner ellipse should have the same gray level than the blob, while points located on the outside ellipse should have a different gray level.
percentage | : Percentage of points sampled with bad gray level on the inner and outside ellipses that are admissible. 0 means that all the points should have a right level, while a value of 1 means that all the points can have a bad gray level. |
void vpDot2::setEllipsoidShapePrecision | ( | const double & | ellipsoidShapePrecision | ) |
Indicates if the dot should have an ellipsoid shape to be valid.
ellipsoidShapePrecision | : It is a double precision float which value is in [0,1]: |
The following example show how to track a blob with a height constraint on an ellipsoid shape. The tracking will fail if the shape is not ellipsoid.
This other example shows how to remove any constraint on the shape. Here the tracker will be able to track any shape, including square or rectangular shapes.
Definition at line 871 of file vpDot2.cpp.
Referenced by searchDotsInArea().
|
inline |
Activates the display of the border of the dot during the tracking. The default thickness of the overlayed drawings can be modified using setGraphicsThickness().
activate | If true, the border of the dot will be painted. false to turn off border painting. |
Definition at line 312 of file vpDot2.h.
Referenced by defineDots(), and searchDotsInArea().
|
inline |
Modify the default thickness that is set to 1 of the drawings in overlay when setGraphics() is enabled.
Definition at line 318 of file vpDot2.h.
Referenced by searchDotsInArea().
|
inline |
Set the color level of pixels surrounding the dot. This is meant to be used to search a dot in a region of interest.
max | : Intensity level of a dot to search in a region of interest. |
Definition at line 347 of file vpDot2.h.
Referenced by searchDotsInArea().
|
inline |
Set the color level of the dot to search a dot in a region of interest. This level will be used to know if a pixel in the image belongs to the dot or not. Only pixels with higher level can belong to the dot. If the level is lower than the minimum level for a dot, set the level to MIN_IN_LEVEL.
min | : Color level of a dot to search in a region of interest. |
Definition at line 331 of file vpDot2.h.
Referenced by searchDotsInArea().
void vpDot2::setGrayLevelPrecision | ( | const double & | grayLevelPrecision | ) |
Set the precision of the gray level of the dot.
grayLevelPrecision | : It is a double precision float which value is in ]0,1]:
|
Definition at line 796 of file vpDot2.cpp.
Referenced by searchDotsInArea().
void vpDot2::setHeight | ( | const double & | height | ) |
Set the height of the dot. This is meant to be used to search a dot in an area.
height | : Height of a dot to search in a region of interest. |
Definition at line 746 of file vpDot2.cpp.
Referenced by initTracking(), and track().
void vpDot2::setMaxSizeSearchDistancePrecision | ( | const double & | maxSizeSearchDistancePrecision | ) |
Set the precision of the search maximum distance to get the starting point on a dot border. A too low value mean a large search area.
maxSizeSearchDistancePrecision | : It is a double precision float which value is in [0.05,1]:
|
Definition at line 900 of file vpDot2.cpp.
void vpDot2::setSizePrecision | ( | const double & | sizePrecision | ) |
Set the precision of the size of the dot. Used to test the validity of the dot
sizePrecision | : It is a double precision float which value is in [0,1]:
|
Definition at line 826 of file vpDot2.cpp.
Referenced by searchDotsInArea().
void vpDot2::setSurface | ( | const double & | surface | ) |
Set the surface of the dot. This is meant to be used to search a dot in a region of interest.
surface | : Here surface means area. Area of a dot to search in a region of interest. |
Definition at line 762 of file vpDot2.cpp.
void vpDot2::setWidth | ( | const double & | width | ) |
Set the width of the dot. This is meant to be used to search a dot in an area.
width | : Width of a dot to search in a region of interest. |
Definition at line 731 of file vpDot2.cpp.
Referenced by initTracking(), and track().
void vpDot2::track | ( | const vpImage< unsigned char > & | I | ) |
Try to locate the dot in the image:
I | : Image. |
vpTrackingException::featureLostError | : If the dot tracking failed. The tracking can fail if the following characteristics are not valid;
|
To get the center of gravity of the dot, call getCog(). To get the width or height of the dot, call getWidth() and getHeight(). The area of the dot is given by getArea().
To compute all the inertia moments associated to the dot see setComputeMoments().
To get the pixels coordinates on the dot boundary, see getList_u() and getList_v().
Definition at line 444 of file vpDot2.cpp.
References vpDisplay::displayCross(), vpTrackingException::featureLostError, vpImagePoint::get_u(), vpImagePoint::get_v(), getArea(), getCog(), getHeight(), getMeanGrayLevel(), getWidth(), m00, m01, m02, m10, m11, m20, vpColor::red, searchDotsInArea(), setArea(), setCog(), setHeight(), setWidth(), and vpERROR_TRACE.
Referenced by defineDots(), initTracking(), track(), and trackAndDisplay().
void vpDot2::track | ( | const vpImage< unsigned char > & | I, |
vpImagePoint & | cog | ||
) |
Track and get the new dot coordinates. See track() for a more complete description
I | : Image to process. |
cog | [out] : Sub pixel coordinate of the tracked dot. |
The behavior of this method is similar to the following code:
Definition at line 613 of file vpDot2.cpp.
References track().
|
static |
Tracks a number of dots in an image and displays their trajectories
dot | : dot2 array |
n | : number of dots, array dimension |
I | : image |
cogs | : vector of vpImagePoint that will be updated with the new dots, will be displayed in green |
cogStar | (optional) : array of vpImagePoint indicating the desired position (default NULL), will be displayed in red |
Definition at line 3149 of file vpDot2.cpp.
References vpColor::blue, vpDisplay::displayCircle(), vpDisplay::displayDotLine(), vpDisplay::flush(), getCog(), vpColor::green, vpColor::red, and track().
|
friend |
Writes the dot center of gravity coordinates in the frame (i,j) (For more details about the orientation of the frame see the vpImagePoint documentation) to the stream os, and returns a reference to the stream.
|
inherited |
Feature coordinates expressed in the camera frame cP.
Definition at line 82 of file vpTracker.h.
Referenced by vpFeaturePoint3D::buildFrom(), vpSphere::changeFrame(), vpCircle::changeFrame(), vpCylinder::changeFrame(), vpLine::changeFrame(), vpFeatureBuilder::create(), vpCircle::init(), vpSphere::init(), vpLine::init(), vpPoint::init(), vpCylinder::init(), vpTracker::operator=(), vpPoint::operator=(), vpForwardProjection::print(), vpPose::printPoint(), vpForwardProjection::project(), vpSphere::projection(), vpCircle::projection(), vpCylinder::projection(), and vpLine::projection().
|
inherited |
Flag used to indicate if the feature parameters cP expressed in the camera frame are available.
Definition at line 88 of file vpTracker.h.
Referenced by vpTracker::init(), vpTracker::operator=(), and vpPoint::operator=().
double vpDot2::m00 |
Considering the general distribution moments for points defined by the relation , is a zero order moment obtained with . This moment corresponds to the dot surface.
Definition at line 367 of file vpDot2.h.
Referenced by vpFeatureBuilder::create(), operator=(), and track().
double vpDot2::m01 |
Considering the general distribution moments for points defined by the relation , is a first order moment obtained with and . corresponds to the inertia first order moment along the u axis.
Definition at line 383 of file vpDot2.h.
Referenced by vpFeatureBuilder::create(), operator=(), and track().
double vpDot2::m02 |
Considering the general distribution moments for points defined by the relation , is a second order moment obtained with and . corresponds to the inertia second order moment along the u axis.
Definition at line 407 of file vpDot2.h.
Referenced by vpFeatureBuilder::create(), operator=(), and track().
double vpDot2::m10 |
Considering the general distribution moments for points defined by the relation , is a first order moment obtained with and . corresponds to the inertia first order moment along the v axis.
Definition at line 375 of file vpDot2.h.
Referenced by vpFeatureBuilder::create(), operator=(), and track().
double vpDot2::m11 |
Considering the general distribution moments for points defined by the relation , is a first order moment obtained with and .
Definition at line 391 of file vpDot2.h.
Referenced by vpFeatureBuilder::create(), operator=(), and track().
double vpDot2::m20 |
Considering the general distribution moments for points defined by the relation , is a second order moment obtained with and . corresponds to the inertia second order moment along the v axis.
Definition at line 398 of file vpDot2.h.
Referenced by vpFeatureBuilder::create(), operator=(), and track().
double vpDot2::mu02 |
is a second order central moments defined by:
Definition at line 426 of file vpDot2.h.
Referenced by operator=().
double vpDot2::mu11 |
is a second order central moments defined by:
Definition at line 416 of file vpDot2.h.
Referenced by operator=().
double vpDot2::mu20 |
is a second order central moments defined by:
Definition at line 421 of file vpDot2.h.
Referenced by operator=().
|
inherited |
Feature coordinates expressed in the image plane p. They correspond to 2D normalized coordinates expressed in meters.
Definition at line 78 of file vpTracker.h.
Referenced by vpFeatureBuilder::create(), vpPoint::display(), vpSphere::display(), vpProjectionDisplay::display(), vpMeTracker::display(), vpCircle::display(), vpCylinder::display(), vpLine::display(), vpProjectionDisplay::displayCamera(), vpDisplay::displayFrame(), vpPose::displayModel(), vpCircle::init(), vpSphere::init(), vpMeTracker::init(), vpLine::init(), vpPoint::init(), vpCylinder::init(), vpMeLine::leastSquare(), vpTracker::operator=(), vpPoint::operator=(), vpForwardProjection::print(), vpPose::printPoint(), vpForwardProjection::project(), vpSphere::projection(), vpCircle::projection(), vpCylinder::projection(), vpLine::projection(), and vpMeLine::updateDelta().