39#ifndef _vpMbEdgeKltTracker_h_
40#define _vpMbEdgeKltTracker_h_
42#include <visp3/core/vpConfig.h>
44#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
46#include <visp3/core/vpExponentialMap.h>
47#include <visp3/core/vpPoseVector.h>
48#include <visp3/core/vpSubColVector.h>
49#include <visp3/core/vpSubMatrix.h>
50#include <visp3/klt/vpKltOpencv.h>
51#include <visp3/mbt/vpMbEdgeTracker.h>
52#include <visp3/mbt/vpMbKltTracker.h>
53#include <visp3/mbt/vpMbTracker.h>
226#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
252 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel =
false) VP_OVERRIDE;
254 const
vpColor &col,
unsigned int thickness = 1,
bool displayFullModel = false) VP_OVERRIDE;
258 virtual std::vector<std::vector<double> >
getModelForDisplay(
unsigned int width,
unsigned int height,
261 bool displayFullModel =
false) VP_OVERRIDE;
272 virtual void loadConfigFile(
const std::string &configFile,
bool verbose =
true) VP_OVERRIDE;
276 void resetTracker() VP_OVERRIDE;
315 faces.getOgreContext()->setWindowName(
"MBT Hybrid");
350 unsigned int lvl = 0,
double *edge_residual =
nullptr,
double *klt_residual =
nullptr);
352 virtual
void computeVVSInteractionMatrixAndResidu() VP_OVERRIDE;
356 virtual
void init(const
vpImage<
unsigned char> &I) VP_OVERRIDE;
358 const std::
string &name =
"") VP_OVERRIDE;
359 virtual
void initCylinder(const
vpPoint &, const
vpPoint &,
double r,
int idFace, const std::
string &name =
"") VP_OVERRIDE;
360 virtual
void initFaceFromCorners(
vpMbtPolygon &polygon) VP_OVERRIDE;
361 virtual
void initFaceFromLines(
vpMbtPolygon &polygon) VP_OVERRIDE;
362 unsigned int initMbtTracking(
unsigned int level = 0);
366 void postTrackingMbt(
vpColVector &w,
unsigned int level = 0);
368 unsigned int trackFirstLoop(const
vpImage<
unsigned char> &I,
vpColVector &factor,
unsigned int lvl = 0);
Generic class defining intrinsic camera parameters.
Implementation of column vector and the associated operations.
Class to define RGB colors available for display functionalities.
Implementation of an homogeneous matrix and operations on such kind of matrices.
Definition of the vpImage class member functions.
Implementation of a matrix and operations on matrices.
double m_thresholdKLT
The threshold used in the robust estimation of KLT.
virtual void testTracking() VP_OVERRIDE
virtual double getNearClippingDistance() const VP_OVERRIDE
virtual void display(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &col, unsigned int thickness=1, bool displayFullModel=false) VP_OVERRIDE
virtual void setNearClippingDistance(const double &dist) VP_OVERRIDE
virtual void setScanLineVisibilityTest(const bool &v) VP_OVERRIDE
virtual void setOgreVisibilityTest(const bool &v) VP_OVERRIDE
virtual vpColVector getError() const VP_OVERRIDE
vpColVector m_w_mbt
Robust weights for Edge.
virtual void setProjectionErrorComputation(const bool &flag) VP_OVERRIDE
virtual vpColVector getRobustWeights() const VP_OVERRIDE
vpColVector m_error_hybrid
(s - s*)
virtual void setClipping(const unsigned int &flags) VP_OVERRIDE
virtual void setFarClippingDistance(const double &dist) VP_OVERRIDE
vpColVector m_w_klt
Robust weights for KLT.
double m_thresholdMBT
The threshold used in the robust estimation of MBT.
unsigned int m_maxIterKlt
The maximum iteration of the virtual visual servoing stage.
vpColVector m_w_hybrid
Robust weights.
virtual void setScanLineVisibilityTest(const bool &v) VP_OVERRIDE
virtual void setNearClippingDistance(const double &dist) VP_OVERRIDE
virtual void setFarClippingDistance(const double &dist) VP_OVERRIDE
virtual void setClipping(const unsigned int &flags) VP_OVERRIDE
virtual void setScanLineVisibilityTest(const bool &v) VP_OVERRIDE
virtual std::vector< std::vector< double > > getModelForDisplay(unsigned int width, unsigned int height, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, bool displayFullModel=false) VP_OVERRIDE
virtual void computeVVSInit() VP_OVERRIDE
virtual void setPose(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cdMo) VP_OVERRIDE
virtual void display(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &col, unsigned int thickness=1, bool displayFullModel=false) VP_OVERRIDE
virtual void track(const vpImage< unsigned char > &I) VP_OVERRIDE
virtual void loadConfigFile(const std::string &configFile, bool verbose=true) VP_OVERRIDE
Main methods for a model-based tracker.
virtual double getNearClippingDistance() const
vpMbHiddenFaces< vpMbtPolygon > faces
Set of faces describing the object.
virtual void setOgreVisibilityTest(const bool &v)
virtual void setProjectionErrorComputation(const bool &flag)
Implementation of a polygon of the model used by the model-based tracker.
Class that defines a 3D point in the object frame and allows forward projection of a 3D point in the ...