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,
const unsigned int thickness = 1,
const bool displayFullModel =
false);
58 const vpColor &col,
const unsigned int thickness = 1,
const bool displayFullModel =
false);
69 const bool verbose =
false);
70 #if defined(VISP_HAVE_PCL) 71 void reInitModel(
const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud,
const std::string &cad_name,
79 virtual void setDepthDenseFilteringMaxDistance(
const double maxDistance);
80 virtual void setDepthDenseFilteringMethod(
const int method);
81 virtual void setDepthDenseFilteringMinDistance(
const double minDistance);
82 virtual void setDepthDenseFilteringOccupancyRatio(
const double occupancyRatio);
86 if (stepX == 0 || stepY == 0) {
87 std::cerr <<
"stepX and stepY must be greater than zero!" << std::endl;
91 m_depthDenseSamplingStepX = stepX;
92 m_depthDenseSamplingStepY = stepY;
104 void setUseDepthDenseTracking(
const std::string &name,
const bool &useDepthDenseTracking);
110 virtual void track(
const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud);
112 virtual void track(
const std::vector<vpColVector> &point_cloud,
const unsigned int width,
const unsigned int height);
139 #if DEBUG_DISPLAY_DEPTH_DENSE 144 void addFace(
vpMbtPolygon &polygon,
const bool alreadyClose);
146 void computeVisibility(
const unsigned int width,
const unsigned int height);
155 const int idFace = 0,
const std::string &name =
"");
158 const std::string &name =
"");
165 void segmentPointCloud(
const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud);
167 void segmentPointCloud(
const std::vector<vpColVector> &point_cloud,
const unsigned int width,
168 const unsigned int height);
vpMbtTukeyEstimator< double > m_robust_depthDense
Tukey M-Estimator.
Implementation of a matrix and operations on matrices.
vpMbHiddenFaces< vpMbtPolygon > m_depthDenseHiddenFacesDisplay
Set of faces describing the object used only for display with scan line.
Class that defines generic functionnalities for display.
virtual void track(const vpImage< unsigned char > &I)=0
virtual void computeVVSInteractionMatrixAndResidu()=0
virtual void computeVVSInit()=0
vpColVector m_weightedError_depthDense
Weighted error.
Implementation of an homogeneous matrix and operations on such kind of matrices.
virtual void loadConfigFile(const std::string &configFile)
Class to define colors available for display functionnalities.
virtual void initCircle(const vpPoint &p1, const vpPoint &p2, const vpPoint &p3, const double radius, const int idFace=0, const std::string &name="")=0
vpColVector m_error_depthDense
(s - s*)
virtual void resetTracker()=0
Class that defines what is a point.
virtual void init(const vpImage< unsigned char > &I)=0
unsigned int m_denseDepthNbFeatures
Nb features.
virtual 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)=0
Implementation of a polygon of the model used by the model-based tracker.
virtual void setCameraParameters(const vpCameraParameters &camera)
vpMatrix m_L_depthDense
Interaction matrix.
virtual void initFaceFromCorners(vpMbtPolygon &polygon)=0
Generic class defining intrinsic camera parameters.
virtual vpColVector getError() const
Main methods for a model-based tracker.
virtual void computeVVSWeights(vpRobust &robust, const vpColVector &error, vpColVector &w)
unsigned int m_depthDenseSamplingStepX
Sampling step in x-direction.
vpImage< unsigned char > m_depthDenseI_dummyVisibility
Dummy image used to compute the visibility.
virtual vpColVector getRobustWeights() const
virtual void setOgreVisibilityTest(const bool &v)
Implementation of column vector and the associated operations.
void setDepthDenseSamplingStep(const unsigned int stepX, const unsigned int stepY)
virtual void initFaceFromLines(vpMbtPolygon &polygon)=0
virtual void testTracking()=0
vpColVector m_w_depthDense
Robust weights.
std::vector< vpMbtFaceDepthDense * > m_depthDenseFaces
List of faces.
virtual void setPose(const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cdMo)=0
virtual void setScanLineVisibilityTest(const bool &v)
virtual void initCylinder(const vpPoint &p1, const vpPoint &p2, const double radius, const int idFace=0, const std::string &name="")=0
unsigned int m_depthDenseSamplingStepY
Sampling step in y-direction.
std::vector< vpMbtFaceDepthDense * > m_depthDenseListOfActiveFaces
List of current active (visible and features extracted) faces.