ViSP  2.8.0
tutorial-mb-edge-tracker.cpp
1 
2 #include <visp/vpDisplayGDI.h>
3 #include <visp/vpDisplayX.h>
4 #include <visp/vpImageIo.h>
5 #include <visp/vpMbEdgeTracker.h>
6 
7 int main()
8 {
12 
13  vpImageIo::read(I, "teabox.pgm");
14 
15 #if defined(VISP_HAVE_X11)
16  vpDisplayX display(I,100,100,"Model-based edge tracker");;
17 #elif defined(VISP_HAVE_GDI)
18  vpDisplayGDI display(I,100,100,"Model-based edge tracker");;
19 #else
20  std::cout << "No image viewer is available..." << std::endl;
21 #endif
22 
23  vpMbEdgeTracker tracker;
24 #ifdef VISP_HAVE_XML2
25  tracker.loadConfigFile("teabox.xml");
26 #else
27  vpMe me;
28  me.setMaskSize(5);
29  me.setMaskNumber(180);
30  me.setRange(8);
31  me.setThreshold(10000);
32  me.setMu1(0.5);
33  me.setMu2(0.5);
34  me.setSampleStep(4);
35  me.setNbTotalSample(250);
36  tracker.setMovingEdge(me);
37  cam.initPersProjWithoutDistortion(839, 839, 325, 243);
38  tracker.setCameraParameters(cam);
39  tracker.setNearClippingDistance(0.1);
40  tracker.setFarClippingDistance(100.0);
42 #endif
43  tracker.setDisplayFeatures(true);
44  tracker.setOgreVisibilityTest(false);
45  tracker.loadModel("teabox.cao");
46  tracker.initClick(I, "teabox.init");
47 
48  while(1){
50  tracker.track(I);
51  tracker.getPose(cMo);
52  tracker.getCameraParameters(cam);
53  tracker.display(I, cMo, cam, vpColor::red, 2);
54  vpDisplay::displayFrame(I, cMo, cam, 0.025, vpColor::none, 3);
56 
57  if (vpDisplay::getClick(I, false))
58  break;
59  vpTime::wait(40);
60  }
61 #ifdef VISP_HAVE_XML2
63 #endif
64 #ifdef VISP_HAVE_COIN
65  SoDB::finish();
66 #endif
67 }
void setMovingEdge(const vpMe &me)
The class provides a data structure for the homogeneous matrices as well as a set of operations on th...
void track(const vpImage< unsigned char > &I)
void setMaskNumber(const unsigned int &a)
Definition: vpMe.cpp:486
Display for windows using GDI (available on any windows 32 platform).
Definition: vpDisplayGDI.h:133
void setSampleStep(const double &s)
Definition: vpMe.h:271
void setMu2(const double &mu2)
Definition: vpMe.h:185
void setNbTotalSample(const int &nb)
Definition: vpMe.h:199
Define the X11 console to display images.
Definition: vpDisplayX.h:152
static const vpColor none
Definition: vpColor.h:179
Contains predetermined masks for sites and holds moving edges tracking parameters.
Definition: vpMe.h:70
Make the complete tracking of an object by using its CAD model.
static int wait(double t0, double t)
Definition: vpTime.cpp:149
void loadConfigFile(const std::string &configFile)
static void flush(const vpImage< unsigned char > &I)
Definition: vpDisplay.cpp:1991
static const vpColor red
Definition: vpColor.h:167
void initPersProjWithoutDistortion(const double px, const double py, const double u0, const double v0)
virtual void setNearClippingDistance(const double &dist)
void setMaskSize(const unsigned int &a)
Definition: vpMe.cpp:494
static void display(const vpImage< unsigned char > &I)
Definition: vpDisplay.cpp:203
Generic class defining intrinsic camera parameters.
virtual void setFarClippingDistance(const double &dist)
virtual void initClick(const vpImage< unsigned char > &I, const std::string &initFile, const bool displayHelp=false)
static void displayFrame(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, double size, const vpColor &color, unsigned int thickness=1)
Definition: vpDisplay.cpp:368
virtual void setOgreVisibilityTest(const bool &v)
virtual void getCameraParameters(vpCameraParameters &cam) const
Definition: vpMbTracker.h:158
static void cleanup()
Definition: vpXmlParser.h:220
void setThreshold(const double &t)
Definition: vpMe.h:299
void display(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &col, const unsigned int thickness=1, const bool displayFullModel=false)
virtual unsigned int getClipping() const
virtual bool getClick(bool blocking=true)=0
virtual void setCameraParameters(const vpCameraParameters &cam)
void setDisplayFeatures(const bool displayF)
Definition: vpMbTracker.h:247
void loadModel(const std::string &cad_name)
void setRange(const unsigned int &r)
Definition: vpMe.h:229
virtual void setClipping(const unsigned int &flags)
static void read(vpImage< unsigned char > &I, const char *filename)
Definition: vpImageIo.cpp:277
void getPose(vpHomogeneousMatrix &cMo) const
Definition: vpMbTracker.h:177
void setMu1(const double &mu1)
Definition: vpMe.h:171