Visual Servoing Platform
version 3.6.1 under development (2024-12-07)
|
#include <visp3/me/vpMe.h>
Public Types | |
enum | vpLikelihoodThresholdType { OLD_THRESHOLD = 0 , NORMALIZED_THRESHOLD = 1 } |
Public Member Functions | |
vpMe () | |
vpMe (const vpMe &me) | |
virtual | ~vpMe () |
vpMe & | operator= (const vpMe &me) |
vpMe & | operator= (const vpMe &&me) |
void | checkSamplestep (double &sample_step) |
unsigned int | getAngleStep () const |
vpMatrix * | getMask () const |
unsigned int | getMaskNumber () const |
int | getMaskSign () const |
unsigned int | getMaskSize () const |
double | getMinSampleStep () const |
double | getMu1 () const |
double | getMu2 () const |
int | getNbTotalSample () const |
int | getPointsToTrack () const |
unsigned int | getRange () const |
double | getSampleStep () const |
int | getStrip () const |
double | getThreshold () const |
double | getThresholdMarginRatio () const |
double | getMinThreshold () const |
bool | getUseAutomaticThreshold () const |
vpLikelihoodThresholdType | getLikelihoodThresholdType () const |
void | initMask () |
void | print () |
void | setAngleStep (const unsigned int &anglestep) |
void | setMaskNumber (const unsigned int &mask_number) |
void | setMaskSign (const int &mask_sign) |
void | setMaskSize (const unsigned int &mask_size) |
void | setMinSampleStep (const double &min_samplestep) |
void | setMu1 (const double &mu_1) |
void | setMu2 (const double &mu_2) |
void | setNbTotalSample (const int &ntotal_sample) |
void | setPointsToTrack (const int &points_to_track) |
void | setRange (const unsigned int &range) |
void | setSampleStep (const double &sample_step) |
void | setStrip (const int &strip) |
void | setThreshold (const double &threshold) |
void | setThresholdMarginRatio (const double &thresholdMarginRatio) |
void | setMinThreshold (const double &minThreshold) |
void | setLikelihoodThresholdType (const vpLikelihoodThresholdType likelihood_threshold_type) |
Friends | |
void | to_json (nlohmann::json &j, const vpMe &me) |
void | from_json (const nlohmann::json &j, vpMe &me) |
This class defines predetermined masks for sites and holds moving edges tracking parameters.
JSON serialization
Since ViSP 3.6.0, if ViSP is build with JSON for modern C++ 3rd-party we introduce JSON serialization capabilities for vpMe. The following sample code shows how to save moving-edges settings in a file named me.json
and reload the values from this JSON file.
If you build and execute the sample code, it will produce the following output:
The content of the me.json
file is the following:
vpMe::vpMe | ( | ) |
|
inline |
|
inline |
Return the angle step.
Definition at line 193 of file vpMe.h.
Referenced by vpMeSite::convolution().
|
inline |
Return the selected choice for the likelihood threshold.
Definition at line 327 of file vpMe.h.
Referenced by vpMeSite::computeFinalThreshold().
|
inline |
Get the matrix of the mask.
Definition at line 200 of file vpMe.h.
Referenced by vpMeSite::convolution().
|
inline |
Return the number of mask applied to determine the object contour. The number of mask determines the precision of the normal of the edge for every sample. If precision is 2deg, then there are 360/2 = 180 masks.
|
inline |
|
inline |
Return the actual mask size (in pixel) used to compute the image gradient and determine the object contour. The mask size defines the size of the convolution mask used to detect an edge.
Definition at line 225 of file vpMe.h.
Referenced by vpMeSite::computeFinalThreshold(), and vpMeSite::convolution().
|
inline |
|
inline |
Return the minimum contrast threshold of the vpMeSite that can be used when using the automatic threshold computation.
Definition at line 310 of file vpMe.h.
Referenced by vpMeSite::setContrastThreshold().
|
inline |
Get the minimum image contrast allowed to detect a contour.
Definition at line 240 of file vpMe.h.
Referenced by vpMeSite::track(), and vpMeSite::trackMultipleHypotheses().
|
inline |
Get the maximum image contrast allowed to detect a contour.
Definition at line 247 of file vpMe.h.
Referenced by vpMeSite::track(), and vpMeSite::trackMultipleHypotheses().
|
inline |
|
inline |
Return the number of points to track.
Definition at line 261 of file vpMe.h.
Referenced by vpMeNurbs::localReSample(), and vpMeNurbs::sample().
|
inline |
Return the seek range on both sides of the reference pixel.
Definition at line 268 of file vpMe.h.
Referenced by vpMbtDistanceCircle::initMovingEdge(), vpMeTracker::initTracking(), vpMeNurbs::localReSample(), vpMeEllipse::plugHoles(), vpMeLine::seekExtremities(), vpMeNurbs::seekExtremities(), vpMeNurbs::seekExtremitiesCanny(), vpMeSite::track(), and vpMeSite::trackMultipleHypotheses().
|
inline |
Get the minimum distance in pixel between two discretized points.
Definition at line 275 of file vpMe.h.
Referenced by vpMeEllipse::leastSquareRobust(), vpMeNurbs::localReSample(), vpMeEllipse::plugHoles(), vpMeLine::reSample(), vpMeNurbs::reSample(), vpMeNurbs::sample(), vpMeEllipse::sample(), vpMeLine::sample(), vpMeLine::seekExtremities(), vpMeNurbs::seekExtremities(), vpMeNurbs::seekExtremitiesCanny(), and vpMeNurbs::supressNearPoints().
|
inline |
Get the number of pixels that are ignored around the image borders.
Definition at line 282 of file vpMe.h.
Referenced by vpMeSite::convolution().
|
inline |
Return the likelihood threshold used to determine if the moving edge is valid or not.
Definition at line 291 of file vpMe.h.
Referenced by vpMeSite::setContrastThreshold().
|
inline |
Return the ratio of the initial contrast to use to initialize the contrast threshold of the vpMeSite.
Definition at line 300 of file vpMe.h.
Referenced by vpMeEllipse::plugHoles(), vpMeEllipse::sample(), vpMeLine::sample(), and vpMeLine::seekExtremities().
|
inline |
Indicates if the contrast threshold of the vpMeSite is automatically computed.
Definition at line 318 of file vpMe.h.
Referenced by vpMeSite::setContrastThreshold().
BEGIN_VISP_NAMESPACE void vpMe::initMask | ( | ) |
Initialise the array of matrices with the defined size and the number of matrices to create.
Definition at line 383 of file vpMe.cpp.
Referenced by operator=(), setMaskNumber(), setMaskSize(), and vpMe().
void vpMe::print | ( | ) |
Print using std::cout moving edges settings.
Definition at line 404 of file vpMe.cpp.
References NORMALIZED_THRESHOLD.
|
inline |
|
inline |
Set the likelihood threshold type used to determine if the moving edge is valid or not.
likelihood_threshold_type | : Likelihood threshold type. It is recommended to use NORMALIZED_THRESHOLD and set the threshold using setThreshold() with a value corresponding to the minimal luminance contrast to consider that can handle values in range [0 ; 255]. |
void vpMe::setMaskNumber | ( | const unsigned int & | mask_number | ) |
Set the number of mask applied to determine the object contour. The number of mask determines the precision of the normal of the edge for every sample. If precision is 2deg, then there are 360/2 = 180 masks.
mask_number | : The number of mask. |
Definition at line 552 of file vpMe.cpp.
References initMask().
|
inline |
void vpMe::setMaskSize | ( | const unsigned int & | mask_size | ) |
Set the mask size (in pixel) used to compute the image gradient and determine the object contour. The mask size defines the size of the convolution mask used to detect an edge.
mask_size | : New mask size. |
Definition at line 560 of file vpMe.cpp.
References initMask().
|
inline |
|
inline |
Set the minimum value of the contrast threshold of the vpMeSite.
minThreshold | Minimum value of the contrast threshold. |
|
inline |
Set the minimum image contrast allowed to detect a contour.
mu_1 | : new mu1. |
|
inline |
Set the maximum image contrast allowed to detect a contour.
mu_2 | : New mu2. |
|
inline |
Set how many discretized points are used to track the feature.
ntotal_sample | : New total number of sample. |
|
inline |
Set the number of points to track.
points_to_track | : New number of points to track. |
|
inline |
Set the seek range on both sides of the reference pixel.
range | : New range. |
Definition at line 415 of file vpMe.h.
Referenced by vpMeTracker::initTracking(), vpMeNurbs::localReSample(), vpMeEllipse::plugHoles(), vpMeLine::seekExtremities(), vpMeNurbs::seekExtremities(), and vpMeNurbs::seekExtremitiesCanny().
|
inline |
Set the minimum distance in pixel between two discretized points.
sample_step | : New sample_step. |
Definition at line 422 of file vpMe.h.
Referenced by vpMeEllipse::sample().
|
inline |
|
inline |
Set the likelihood threshold used to determined if the moving edge is valid or not.
threshold | : Threshold to consider. Two different cases need to be considered depending on the likelihood threshold type that can be set using setLikelihoodThresholdType() or get using getLikelihoodThresholdType(). The default likelihood threshold type is set to OLD_THRESHOLD to keep compatibility with ViSP previous releases, but it is recommended to use rather the NORMALIZED_THRESHOLD type like in the following sample code. When doing so, the threshold is more easy to set since it corresponds to the minimal luminance contrast to consider with values in range [0 ; 255]. |
When the likelihood threshold type is set by default to OLD_THRESHOLD like in the next example, values of the likelihood threshold depends on the minimal luminance contrast to consider and the mask size that can be set using setMaskSize() and retrieved using getMaskSize().
The previous sample code is similar to the next one:
|
inline |
Set the the ratio of the initial contrast to use to initialize the contrast threshold of the vpMeSite.
thresholdMarginRatio | Value of the likelihood threshold ratio, between 0 and 1. |
Definition at line 475 of file vpMe.h.
References vpException::badValue.
|
friend |
Retrieve a vpMe object from a JSON representation.
JSON content (key: type):
Example:
j | JSON representation to convert |
me | converted object |