Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
vpMeTracker.h
1/*
2 * ViSP, open source Visual Servoing Platform software.
3 * Copyright (C) 2005 - 2025 by Inria. All rights reserved.
4 *
5 * This software is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 * See the file LICENSE.txt at the root directory of this source
10 * distribution for additional information about the GNU GPL.
11 *
12 * For using ViSP with software that can not be combined with the GNU
13 * GPL, please contact Inria about acquiring a ViSP Professional
14 * Edition License.
15 *
16 * See https://visp.inria.fr for more information.
17 *
18 * This software was developed at:
19 * Inria Rennes - Bretagne Atlantique
20 * Campus Universitaire de Beaulieu
21 * 35042 Rennes Cedex
22 * France
23 *
24 * If you have questions regarding the use of this file, please contact
25 * Inria at visp@inria.fr
26 *
27 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29 *
30 * Description:
31 * Moving edges.
32 */
33
38
39#ifndef VP_ME_TRACKER_H
40#define VP_ME_TRACKER_H
41
42#include <visp3/core/vpColVector.h>
43#include <visp3/core/vpTracker.h>
44#include <visp3/me/vpMe.h>
45#include <visp3/me/vpMeSite.h>
46
47#include <iostream>
48#include <list>
49#include <math.h>
50
52
68class VISP_EXPORT vpMeTracker : public vpTracker
69{
70public:
75
79 vpMeTracker(const vpMeTracker &meTracker);
80
84 virtual ~vpMeTracker() VP_OVERRIDE;
85
88
101 void display(const vpImage<unsigned char> &I);
102
115 void display(const vpImage<vpRGBa> &I);
116
124 void display(const vpImage<unsigned char> &I, vpColVector &w, unsigned int &index_w);
125
135 static bool inRoiMask(const vpImage<bool> *mask, unsigned int i, unsigned int j);
136
146 static bool inMeMaskCandidates(const vpImage<bool> *meMaskCandidates, unsigned int i, unsigned int j);
147
153 inline vpMe *getMe() { return m_me; }
154
160 inline std::list<vpMeSite> &getMeList() { return m_meList; }
161
167 inline std::list<vpMeSite> getMeList() const { return m_meList; }
168
174 inline int getNbPoints() const { return m_nGoodElement; }
175
179 void init();
180
187 void initTracking(const vpImage<unsigned char> &I);
188
192 unsigned int numberOfSignal();
193
197 vpMeTracker &operator=(vpMeTracker &meTracker);
198
208 bool outOfImage(int i, int j, int border, int nrows, int ncols);
209
218 bool outOfImage(const vpImagePoint &iP, int border, int nrows, int ncols);
219
223 void reset();
224
228 virtual void sample(const vpImage<unsigned char> &image, bool doNotTrack = false) = 0;
229
235
241 virtual void setMask(const vpImage<bool> &mask) { m_mask = &mask; }
242
248 virtual void setMaskCandidates(const vpImage<bool> *maskCandidates) { m_maskCandidates = maskCandidates; }
249
255 void setMe(vpMe *me) { m_me = me; }
256
262 void setMeList(const std::list<vpMeSite> &meList) { m_meList = meList; }
263
267 unsigned int totalNumberOfSignal();
268
276 void track(const vpImage<unsigned char> &I);
278
279#if defined(VISP_BUILD_DEPRECATED_FUNCTIONS)
284
294 VP_DEPRECATED static bool inMask(const vpImage<bool> *mask, unsigned int i, unsigned int j)
295 {
296 return inRoiMask(mask, i, j);
297 }
298
299#endif
300
301protected:
304
306 std::list<vpMeSite> m_meList;
318
319};
320
321END_VISP_NAMESPACE
322
323#endif
Implementation of column vector and the associated operations.
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
Definition of the vpImage class member functions.
Definition vpImage.h:131
vpMeSiteDisplayType
Definition vpMeSite.h:81
Contains abstract elements for a Distance to Feature type feature.
Definition vpMeTracker.h:69
const vpImage< bool > * m_mask
Mask used to disable tracking on a part of image.
std::list< vpMeSite > & getMeList()
vpMeSite::vpMeSiteDisplayType m_selectDisplay
Moving-edges display type.
int getNbPoints() const
virtual void sample(const vpImage< unsigned char > &image, bool doNotTrack=false)=0
virtual void setMaskCandidates(const vpImage< bool > *maskCandidates)
std::list< vpMeSite > getMeList() const
vpMe * m_me
Moving edges initialisation parameters.
static bool inRoiMask(const vpImage< bool > *mask, unsigned int i, unsigned int j)
void display(const vpImage< unsigned char > &I)
void setDisplay(vpMeSite::vpMeSiteDisplayType select)
void setMe(vpMe *me)
int m_nGoodElement
Number of good moving-edges that are tracked.
const vpImage< bool > * m_maskCandidates
Mask used to determine candidate points for initialization in an image.
vpMe * getMe()
std::list< vpMeSite > m_meList
static VP_DEPRECATED bool inMask(const vpImage< bool > *mask, unsigned int i, unsigned int j)
static bool inMeMaskCandidates(const vpImage< bool > *meMaskCandidates, unsigned int i, unsigned int j)
virtual void setMask(const vpImage< bool > &mask)
void setMeList(const std::list< vpMeSite > &meList)
Definition vpMe.h:143
vpTracker & operator=(const vpTracker &tracker)
Copy operator.
Definition vpTracker.cpp:49
void init()
Default initialization.
Definition vpTracker.cpp:43
vpTracker()
Default constructor.
Definition vpTracker.cpp:45