36 #ifndef _vpMbDepthDenseTracker_h_
37 #define _vpMbDepthDenseTracker_h_
39 #include <visp3/core/vpPlane.h>
40 #include <visp3/mbt/vpMbTracker.h>
41 #include <visp3/mbt/vpMbtFaceDepthDense.h>
42 #include <visp3/mbt/vpMbtTukeyEstimator.h>
44 #if DEBUG_DISPLAY_DEPTH_DENSE
45 #include <visp3/core/vpDisplay.h>
55 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel =
false);
58 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel =
false);
62 virtual std::vector<std::vector<double> >
getModelForDisplay(
unsigned int width,
unsigned int height,
65 bool displayFullModel =
false);
71 virtual void loadConfigFile(
const std::string &configFile,
bool verbose =
true);
74 bool verbose =
false);
75 #if defined(VISP_HAVE_PCL)
76 void reInitModel(
const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud,
const std::string &cad_name,
84 virtual void setDepthDenseFilteringMaxDistance(
double maxDistance);
85 virtual void setDepthDenseFilteringMethod(
int method);
86 virtual void setDepthDenseFilteringMinDistance(
double minDistance);
87 virtual void setDepthDenseFilteringOccupancyRatio(
double occupancyRatio);
91 if (stepX == 0 || stepY == 0) {
92 std::cerr <<
"stepX and stepY must be greater than zero!" << std::endl;
96 m_depthDenseSamplingStepX = stepX;
97 m_depthDenseSamplingStepY = stepY;
110 void setUseDepthDenseTracking(
const std::string &name,
const bool &useDepthDenseTracking);
117 virtual void track(
const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud);
119 virtual void track(
const std::vector<vpColVector> &point_cloud,
unsigned int width,
unsigned int height);
144 #if DEBUG_DISPLAY_DEPTH_DENSE
151 void computeVisibility(
unsigned int width,
unsigned int height);
160 const std::string &name =
"");
163 const std::string &name =
"");
170 void segmentPointCloud(
const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud);
172 void segmentPointCloud(
const std::vector<vpColVector> &point_cloud,
unsigned int width,
unsigned int height);
Generic class defining intrinsic camera parameters.
Implementation of column vector and the associated operations.
Class to define RGB colors available for display functionnalities.
Class that defines generic functionnalities for display.
Implementation of an homogeneous matrix and operations on such kind of matrices.
Implementation of a matrix and operations on matrices.
vpMbtTukeyEstimator< double > m_robust_depthDense
Tukey M-Estimator.
virtual vpColVector getError() const
vpColVector m_weightedError_depthDense
Weighted error.
unsigned int m_depthDenseSamplingStepY
Sampling step in y-direction.
vpMbHiddenFaces< vpMbtPolygon > m_depthDenseHiddenFacesDisplay
Set of faces describing the object used only for display with scan line.
unsigned int m_depthDenseSamplingStepX
Sampling step in x-direction.
vpColVector m_error_depthDense
(s - s*)
vpMatrix m_L_depthDense
Interaction matrix.
std::vector< vpMbtFaceDepthDense * > m_depthDenseListOfActiveFaces
List of current active (visible and features extracted) faces.
void setDepthDenseSamplingStep(unsigned int stepX, unsigned int stepY)
unsigned int m_denseDepthNbFeatures
Nb features.
vpColVector m_w_depthDense
Robust weights.
virtual vpColVector getRobustWeights() const
std::vector< vpMbtFaceDepthDense * > m_depthDenseFaces
List of faces.
Main methods for a model-based tracker.
virtual void track(const vpImage< unsigned char > &I)=0
virtual void resetTracker()=0
virtual void init(const vpImage< unsigned char > &I)=0
virtual std::vector< std::vector< double > > getModelForDisplay(unsigned int width, unsigned int height, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, bool displayFullModel=false)=0
virtual void initFaceFromLines(vpMbtPolygon &polygon)=0
virtual void initCircle(const vpPoint &p1, const vpPoint &p2, const vpPoint &p3, double radius, int idFace=0, const std::string &name="")=0
virtual void initCylinder(const vpPoint &p1, const vpPoint &p2, double radius, int idFace=0, const std::string &name="")=0
virtual void computeVVSWeights(vpRobust &robust, const vpColVector &error, vpColVector &w)
virtual void setCameraParameters(const vpCameraParameters &cam)
virtual void setScanLineVisibilityTest(const bool &v)
virtual void setOgreVisibilityTest(const bool &v)
virtual void setPose(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cdMo)=0
virtual void computeVVSInteractionMatrixAndResidu()=0
virtual void display(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &col, unsigned int thickness=1, bool displayFullModel=false)=0
virtual void computeVVSInit()=0
virtual void testTracking()=0
virtual void initFaceFromCorners(vpMbtPolygon &polygon)=0
virtual void loadConfigFile(const std::string &configFile, bool verbose=true)
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 ...