39 #include <visp3/core/vpColor.h>
40 #include <visp3/core/vpDisplay.h>
41 #include <visp3/me/vpMeTracker.h>
44 #include <visp3/core/vpDebug.h>
45 #include <visp3/core/vpTrackingException.h>
47 #define DEBUG_LEVEL1 0
48 #define DEBUG_LEVEL2 0
58 : list(), me(nullptr), init_range(1), nGoodElement(0), m_mask(nullptr), selectDisplay(
vpMeSite::NONE)
59 #ifdef VISP_BUILD_DEPRECATED_FUNCTIONS
61 query_range(0), display_point(false)
68 :
vpTracker(meTracker), list(), me(nullptr), init_range(1), nGoodElement(0), m_mask(nullptr), selectDisplay(
vpMeSite::NONE)
69 #ifdef VISP_BUILD_DEPRECATED_FUNCTIONS
71 query_range(0), display_point(false)
82 #ifdef VISP_BUILD_DEPRECATED_FUNCTIONS
103 #ifdef VISP_BUILD_DEPRECATED_FUNCTIONS
114 unsigned int number_signal = 0;
117 number_signal =
static_cast<unsigned int>(std::count_if(
list.begin(),
list.end(), isSuppressZero));
118 return number_signal;
126 return (mask ==
nullptr || mask->
getValue(i, j));
135 return (!((i > half + 2) && (i < rows - (half + 2)) && (j > half + 2) && (j < cols - (half + 2))));
142 return (!((i > half + 2) && (i < rows - (half + 2)) && (j > half + 2) && (j < cols - (half + 2))));
148 vpDERROR_TRACE(2,
"Tracking error: Moving edges not initialized");
159 for (std::list<vpMeSite>::iterator it =
list.begin(); it !=
list.end(); ++it) {
185 vpDERROR_TRACE(2,
"Tracking error: Moving edges not initialized");
197 std::list<vpMeSite>::iterator it =
list.begin();
198 while (it !=
list.end()) {
231 for (std::list<vpMeSite>::const_iterator it =
list.begin(); it !=
list.end(); ++it) {
239 for (std::list<vpMeSite>::const_iterator it =
list.begin(); it !=
list.end(); ++it) {
247 for (std::list<vpMeSite>::iterator it =
list.begin(); it !=
list.end(); ++it) {
Implementation of column vector and the associated operations.
void resize(unsigned int i, bool flagNullify=true)
error that can be emitted by ViSP classes.
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
Type getValue(unsigned int i, unsigned int j) const
static int round(double x)
Performs search in a given direction(normal) for a given distance(pixels) for a given 'site'....
int j
Coordinates along j of a site.
@ THRESHOLD
Point removed due to a threshold problem.
@ NO_SUPPRESSION
Point used by the tracker.
double weight
Uncertainty of point given as a probability between 0 and 1.
void display(const vpImage< unsigned char > &I)
int i
Coordinate along i of a site.
vpMeSiteState getState() const
void track(const vpImage< unsigned char > &im, const vpMe *me, bool test_likelihood=true)
void setState(const vpMeSiteState &flag)
Contains abstract elements for a Distance to Feature type feature.
void initTracking(const vpImage< unsigned char > &I)
const vpImage< bool > * m_mask
Mask used to disable tracking on a part of image.
unsigned int numberOfSignal()
int nGoodElement
Number of good moving-edges that are tracked.
virtual ~vpMeTracker() override
vpMeSite::vpMeSiteDisplayType selectDisplay
int outOfImage(int i, int j, int half, int row, int cols)
void track(const vpImage< unsigned char > &I)
unsigned int totalNumberOfSignal()
std::list< vpMeSite > list
void display(const vpImage< unsigned char > &I)
unsigned int init_range
Initial range.
static bool inMask(const vpImage< bool > *mask, unsigned int i, unsigned int j)
vpMeTracker & operator=(vpMeTracker &f)
vpMe * me
Moving edges initialisation parameters.
void setRange(const unsigned int &range)
unsigned int getRange() const
Class that defines what is a feature generic tracker.
void init()
Default initialization.
Error that can be emitted by the vpTracker class and its derivatives.
@ notEnoughPointError
Not enough point to track.
@ initializationError
Tracker initialization error.