41 #ifndef _vpMbEdgeKltTracker_h_
42 #define _vpMbEdgeKltTracker_h_
44 #include <visp3/core/vpConfig.h>
46 #if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
48 #include <visp3/core/vpExponentialMap.h>
49 #include <visp3/core/vpPoseVector.h>
50 #include <visp3/core/vpSubColVector.h>
51 #include <visp3/core/vpSubMatrix.h>
52 #include <visp3/klt/vpKltOpencv.h>
53 #include <visp3/mbt/vpMbEdgeTracker.h>
54 #include <visp3/mbt/vpMbKltTracker.h>
55 #include <visp3/mbt/vpMbTracker.h>
209 #if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
235 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel =
false);
237 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel =
false);
241 virtual std::vector<std::vector<double> >
getModelForDisplay(
unsigned int width,
unsigned int height,
244 bool displayFullModel =
false);
255 virtual void loadConfigFile(
const std::string &configFile,
bool verbose =
true);
297 #ifdef VISP_HAVE_OGRE
298 faces.getOgreContext()->setWindowName(
"MBT Hybrid");
329 unsigned int lvl = 0,
double *edge_residual = NULL,
double *klt_residual = NULL);
337 const std::string &name =
"");
345 void postTrackingMbt(
vpColVector &w,
unsigned int level = 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.
Implementation of a matrix and operations on matrices.
Hybrid tracker based on moving-edges and keypoints tracked using KLT tracker.
double m_thresholdKLT
The threshold used in the robust estimation of KLT.
virtual void testTracking()
virtual void setClipping(const unsigned int &flags)
virtual void setFarClippingDistance(const double &dist)
virtual double getNearClippingDistance() const
virtual void setScanLineVisibilityTest(const bool &v)
vpColVector m_w_mbt
Robust weights for Edge.
virtual void setProjectionErrorComputation(const bool &flag)
virtual vpColVector getRobustWeights() const
virtual vpColVector getError() const
vpColVector m_error_hybrid
(s - s*)
virtual void setNearClippingDistance(const double &dist)
virtual void setOgreVisibilityTest(const bool &v)
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.
Make the complete tracking of an object by using its CAD model.
void computeVVS(const vpImage< unsigned char > &_I, unsigned int lvl)
virtual void setCameraParameters(const vpCameraParameters &cam)
virtual void setNearClippingDistance(const double &dist)
virtual void setScanLineVisibilityTest(const bool &v)
virtual void initFaceFromLines(vpMbtPolygon &polygon)
virtual void computeVVSInit()
virtual void setFarClippingDistance(const double &dist)
virtual void reInitModel(const vpImage< unsigned char > &I, const std::string &cad_name, const vpHomogeneousMatrix &cMo, bool verbose=false, const vpHomogeneousMatrix &T=vpHomogeneousMatrix())
virtual void computeVVSInteractionMatrixAndResidu()
virtual void track(const vpImage< unsigned char > &I)
virtual void loadConfigFile(const std::string &configFile, bool verbose=true)
virtual void setClipping(const unsigned int &flags)
virtual void initCircle(const vpPoint &p1, const vpPoint &p2, const vpPoint &p3, double radius, int idFace=0, const std::string &name="")
virtual void initCylinder(const vpPoint &p1, const vpPoint &p2, double radius, int idFace=0, const std::string &name="")
unsigned int initMbtTracking(unsigned int &nberrors_lines, unsigned int &nberrors_cylinders, unsigned int &nberrors_circles)
virtual std::vector< std::vector< double > > getModelForDisplay(unsigned int width, unsigned int height, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, bool displayFullModel=false)
virtual void setPose(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cdMo)
virtual void initFaceFromCorners(vpMbtPolygon &polygon)
virtual void display(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &col, unsigned int thickness=1, bool displayFullModel=false)
virtual void init(const vpImage< unsigned char > &I)
Model based tracker using only KLT.
virtual void setScanLineVisibilityTest(const bool &v)
bool postTracking(const vpImage< unsigned char > &I, vpColVector &w)
virtual double getNearClippingDistance() const
virtual void computeVVSPoseEstimation(const bool isoJoIdentity, unsigned int iter, vpMatrix &L, vpMatrix <L, vpColVector &R, const vpColVector &error, vpColVector &error_prev, vpColVector <R, double &mu, vpColVector &v, const vpColVector *const w=NULL, vpColVector *const m_w_prev=NULL)
virtual void setOgreVisibilityTest(const bool &v)
virtual void computeCovarianceMatrixVVS(const bool isoJoIdentity, const vpColVector &w_true, const vpHomogeneousMatrix &cMoPrev, const vpMatrix &L_true, const vpMatrix &LVJ_true, const vpColVector &error)
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 ...