206#if defined(VISP_HAVE_MODULE_KLT) && (defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO))
216 vpMbGenericTracker(
const std::vector<std::string> &cameraNames,
const std::vector<int> &trackerTypes);
226 const
vpColor &col,
unsigned int thickness = 1,
bool displayFullModel = false) VP_OVERRIDE;
228 const
vpColor &col,
unsigned int thickness = 1,
bool displayFullModel = false) VP_OVERRIDE;
230 virtual
void display(const
vpImage<
unsigned char> &I1, const
vpImage<
unsigned char> &I2,
233 bool displayFullModel = false);
236 const
vpColor &color,
unsigned int thickness = 1,
bool displayFullModel = false);
238 virtual
void display(const std::map<std::
string, const
vpImage<
unsigned char> *> &mapOfImages,
241 unsigned int thickness = 1,
bool displayFullModel = false);
242 virtual
void display(const std::map<std::
string, const
vpImage<
vpRGBa> *> &mapOfImages,
245 unsigned int thickness = 1,
bool displayFullModel = false);
247 virtual std::vector<std::
string> getCameraNames() const;
252 virtual
void getCameraParameters(std::map<std::
string,
vpCameraParameters> &mapOfCameraParameters) const;
254 virtual std::map<std::
string,
int> getCameraTrackerTypes() const;
257 virtual
void getClipping(
unsigned int &clippingFlag1,
unsigned int &clippingFlag2) const;
258 virtual
void getClipping(std::map<std::
string,
unsigned int> &mapOfClippingFlags) const;
265#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
266 virtual std::list<vpMbtDistanceCircle *> &getFeaturesCircle();
267 virtual std::list<vpMbtDistanceKltCylinder *> &getFeaturesKltCylinder();
268 virtual std::list<vpMbtDistanceKltPoints *> &getFeaturesKlt();
271 virtual std::vector<std::vector<double> > getFeaturesForDisplay();
272 virtual void getFeaturesForDisplay(std::map<std::string, std::vector<std::vector<double> > > &mapOfFeatures);
274 virtual double getGoodMovingEdgesRatioThreshold()
const;
276#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
277 virtual std::vector<vpImagePoint> getKltImagePoints()
const;
278 virtual std::map<int, vpImagePoint> getKltImagePointsWithId()
const;
280 virtual unsigned int getKltMaskBorder()
const;
281 virtual int getKltNbPoints()
const;
285 virtual void getKltOpencv(std::map<std::string, vpKltOpencv> &mapOfKlts)
const;
287#if defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
288 virtual std::vector<cv::Point2f> getKltPoints()
const;
291 virtual double getKltThresholdAcceptation()
const;
294 virtual void getLcircle(std::list<vpMbtDistanceCircle *> &circlesList,
unsigned int level = 0)
const;
295 virtual void getLcircle(
const std::string &cameraName, std::list<vpMbtDistanceCircle *> &circlesList,
296 unsigned int level = 0)
const;
297 virtual void getLcylinder(std::list<vpMbtDistanceCylinder *> &cylindersList,
unsigned int level = 0)
const;
298 virtual void getLcylinder(
const std::string &cameraName, std::list<vpMbtDistanceCylinder *> &cylindersList,
299 unsigned int level = 0)
const;
300 virtual void getLline(std::list<vpMbtDistanceLine *> &linesList,
unsigned int level = 0)
const;
301 virtual void getLline(
const std::string &cameraName, std::list<vpMbtDistanceLine *> &linesList,
302 unsigned int level = 0)
const;
304 virtual std::vector<std::vector<double> >
getModelForDisplay(
unsigned int width,
unsigned int height,
307 bool displayFullModel =
false) VP_OVERRIDE;
308 virtual
void getModelForDisplay(std::map<std::
string, std::vector<std::vector<
double> > > &mapOfModels,
309 const std::map<std::
string,
unsigned int> &mapOfwidths,
310 const std::map<std::
string,
unsigned int> &mapOfheights,
313 bool displayFullModel = false);
315 virtual
vpMe getMovingEdge() const;
316 virtual
void getMovingEdge(
vpMe &me1,
vpMe &me2) const;
317 virtual
void getMovingEdge(std::map<std::
string,
vpMe> &mapOfMovingEdges) const;
341 virtual unsigned int getNbPoints(
unsigned int level = 0)
const;
342 virtual void getNbPoints(std::map<std::string, unsigned int> &mapOfNbPoints,
unsigned int level = 0)
const;
345 virtual
void getNbPolygon(std::map<std::
string,
unsigned int> &mapOfNbPolygons) const;
347 virtual
vpMbtPolygon *getPolygon(
unsigned int index) VP_OVERRIDE;
348 virtual
vpMbtPolygon *getPolygon(const std::
string &cameraName,
unsigned int index);
350 virtual std::pair<std::vector<
vpPolygon>, std::vector<std::vector<
vpPoint> > >
351 getPolygonFaces(
bool orderPolygons = true,
bool useVisibility = true,
bool clipPolygon = false) VP_OVERRIDE;
352 virtual
void getPolygonFaces(std::map<std::
string, std::vector<
vpPolygon> > &mapOfPolygons,
353 std::map<std::
string, std::vector<std::vector<
vpPoint> > > &mapOfPoints,
354 bool orderPolygons = true,
bool useVisibility = true,
bool clipPolygon = false);
361 virtual std::
string getReferenceCameraName() const;
365 virtual int getTrackerType()
const;
369#ifdef VISP_HAVE_MODULE_GUI
372 const std::string &initFile1,
const std::string &initFile2,
bool displayHelp =
false,
376 const std::string &initFile2,
bool displayHelp =
false,
382 const std::map<std::string, std::string> &mapOfInitFiles,
bool displayHelp =
false,
383 const std::map<std::string, vpHomogeneousMatrix> &mapOfT = std::map<std::string, vpHomogeneousMatrix>());
386 const std::map<std::string, std::string> &mapOfInitFiles,
bool displayHelp =
false,
387 const std::map<std::string, vpHomogeneousMatrix> &mapOfT = std::map<std::string, vpHomogeneousMatrix>());
392 const std::string &initFile1,
const std::string &initFile2);
394 const std::string &initFile1,
const std::string &initFile2);
397 const std::map<std::string, std::string> &mapOfInitPoints);
399 const std::map<std::string, std::string> &mapOfInitPoints);
404 const std::string &initFile1,
const std::string &initFile2);
406 const std::string &initFile1,
const std::string &initFile2);
409 const std::map<std::string, std::string> &mapOfInitPoses);
411 const std::map<std::string, std::string> &mapOfInitPoses);
419 const std::map<std::string, vpHomogeneousMatrix> &mapOfCameraPoses);
421 const std::map<std::string, vpHomogeneousMatrix> &mapOfCameraPoses);
423 virtual void loadConfigFile(
const std::string &configFile,
bool verbose =
true) VP_OVERRIDE;
424 virtual
void loadConfigFile(const std::
string &configFile1, const std::
string &configFile2,
bool verbose = true);
425 virtual
void loadConfigFile(const std::map<std::
string, std::
string> &mapOfConfigFiles,
bool verbose = true);
427#ifdef VISP_HAVE_NLOHMANN_JSON
428 virtual void saveConfigFile(
const std::string &settingsFile)
const;
431 virtual void loadModel(
const std::string &modelFile,
bool verbose =
false,
433 virtual
void loadModel(const std::
string &modelFile1, const std::
string &modelFile2,
bool verbose = false,
438 loadModel(const std::map<std::
string, std::
string> &mapOfModelFiles,
bool verbose = false,
446 virtual
void reInitModel(const
vpImage<
unsigned char> &I1, const
vpImage<
unsigned char> &I2,
447 const std::
string &cad_name1, const std::
string &cad_name2, const
vpHomogeneousMatrix &c1Mo,
452 const std::
string &cad_name1, const std::
string &cad_name2, const
vpHomogeneousMatrix &c1Mo,
458 reInitModel(const std::map<std::
string, const
vpImage<
unsigned char> *> &mapOfImages,
459 const std::map<std::
string, std::
string> &mapOfModelFiles,
463 reInitModel(const std::map<std::
string, const
vpImage<
vpRGBa> *> &mapOfColorImages,
464 const std::map<std::
string, std::
string> &mapOfModelFiles,
468 virtual
void resetTracker() VP_OVERRIDE;
470 virtual
void setAngleAppear(const
double &a) VP_OVERRIDE;
471 virtual
void setAngleAppear(const
double &a1, const
double &a2);
472 virtual
void setAngleAppear(const std::map<std::
string,
double> &mapOfAngles);
474 virtual
void setAngleDisappear(const
double &a) VP_OVERRIDE;
475 virtual
void setAngleDisappear(const
double &a1, const
double &a2);
476 virtual
void setAngleDisappear(const std::map<std::
string,
double> &mapOfAngles);
480 virtual
void setCameraParameters(const std::map<std::
string,
vpCameraParameters> &mapOfCameraParameters);
482 virtual
void setCameraTransformationMatrix(const std::
string &cameraName,
485 setCameraTransformationMatrix(const std::map<std::
string,
vpHomogeneousMatrix> &mapOfTransformationMatrix);
487 virtual
void setClipping(const
unsigned int &flags) VP_OVERRIDE;
488 virtual
void setClipping(const
unsigned int &flags1, const
unsigned int &flags2);
489 virtual
void setClipping(const std::map<std::
string,
unsigned int> &mapOfClippingFlags);
491 virtual
void setDepthDenseFilteringMaxDistance(
double maxDistance);
492 virtual
void setDepthDenseFilteringMethod(
int method);
493 virtual
void setDepthDenseFilteringMinDistance(
double minDistance);
494 virtual
void setDepthDenseFilteringOccupancyRatio(
double occupancyRatio);
495 virtual
void setDepthDenseSamplingStep(
unsigned int stepX,
unsigned int stepY);
497 virtual
void setDepthNormalFaceCentroidMethod(const
vpMbtFaceDepthNormal::vpFaceCentroidType &method);
498 virtual
void setDepthNormalFeatureEstimationMethod(const
vpMbtFaceDepthNormal::vpFeatureEstimationType &method);
499 virtual
void setDepthNormalPclPlaneEstimationMethod(
int method);
500 virtual
void setDepthNormalPclPlaneEstimationRansacMaxIter(
int maxIter);
501 virtual
void setDepthNormalPclPlaneEstimationRansacThreshold(
double threshold);
502 virtual
void setDepthNormalSamplingStep(
unsigned int stepX,
unsigned int stepY);
504 virtual
void setDisplayFeatures(
bool displayF) VP_OVERRIDE;
506 virtual
void setFarClippingDistance(const
double &dist) VP_OVERRIDE;
507 virtual
void setFarClippingDistance(const
double &dist1, const
double &dist2);
508 virtual
void setFarClippingDistance(const std::map<std::
string,
double> &mapOfClippingDists);
510 virtual
void setFeatureFactors(const std::map<vpTrackerType,
double> &mapOfFeatureFactors);
512 virtual
void setGoodMovingEdgesRatioThreshold(
double threshold);
519#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
520 virtual void setKltMaskBorder(
const unsigned int &e);
521 virtual void setKltMaskBorder(
const unsigned int &e1,
const unsigned int &e2);
522 virtual void setKltMaskBorder(
const std::map<std::string, unsigned int> &mapOfErosions);
526 virtual void setKltOpencv(
const std::map<std::string, vpKltOpencv> &mapOfKlts);
528 virtual void setKltThresholdAcceptation(
double th);
531 virtual void setLod(
bool useLod,
const std::string &name =
"") VP_OVERRIDE;
533 virtual
void setMask(const
vpImage<
bool> &mask) VP_OVERRIDE;
535 virtual
void setMinLineLengthThresh(
double minLineLengthThresh, const std::
string &name =
"") VP_OVERRIDE;
536 virtual
void setMinPolygonAreaThresh(
double minPolygonAreaThresh, const std::
string &name =
"") VP_OVERRIDE;
538 virtual
void setMovingEdge(const
vpMe &me);
539 virtual
void setMovingEdge(const
vpMe &me1, const
vpMe &me2);
540 virtual
void setMovingEdge(const std::map<std::
string,
vpMe> &mapOfMe);
542 virtual
void setNearClippingDistance(const
double &dist) VP_OVERRIDE;
543 virtual
void setNearClippingDistance(const
double &dist1, const
double &dist2);
544 virtual
void setNearClippingDistance(const std::map<std::
string,
double> &mapOfDists);
546 virtual
void setOgreShowConfigDialog(
bool showConfigDialog) VP_OVERRIDE;
547 virtual
void setOgreVisibilityTest(const
bool &v) VP_OVERRIDE;
549 virtual
void setOptimizationMethod(const vpMbtOptimizationMethod &opt) VP_OVERRIDE;
554 virtual
void setPose(const
vpImage<
unsigned char> &I1, const
vpImage<
unsigned char> &I2,
559 virtual
void setPose(const std::map<std::
string, const
vpImage<
unsigned char> *> &mapOfImages,
561 virtual
void setPose(const std::map<std::
string, const
vpImage<
vpRGBa> *> &mapOfColorImages,
564 virtual
void setProjectionErrorComputation(const
bool &flag) VP_OVERRIDE;
566 virtual
void setProjectionErrorDisplay(
bool display) VP_OVERRIDE;
567 virtual
void setProjectionErrorDisplayArrowLength(
unsigned int length) VP_OVERRIDE;
568 virtual
void setProjectionErrorDisplayArrowThickness(
unsigned int thickness) VP_OVERRIDE;
570 virtual
void setReferenceCameraName(const std::
string &referenceCameraName);
572 virtual
void setScanLineVisibilityTest(const
bool &v) VP_OVERRIDE;
574 virtual
void setTrackerType(
int type);
575 virtual
void setTrackerType(const std::map<std::
string,
int> &mapOfTrackerTypes);
577 virtual
void setUseDepthDenseTracking(const std::
string &name, const
bool &useDepthDenseTracking);
578 virtual
void setUseDepthNormalTracking(const std::
string &name, const
bool &useDepthNormalTracking);
579 virtual
void setUseEdgeTracking(const std::
string &name, const
bool &useEdgeTracking);
580#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
581 virtual void setUseKltTracking(
const std::string &name,
const bool &useKltTracking);
586 virtual
void track(const
vpImage<
unsigned char> &I) VP_OVERRIDE;
587 virtual
void track(const
vpImage<
vpRGBa> &I_color) VP_OVERRIDE;
589 virtual
void track(const
vpImage<
unsigned char> &I1, const
vpImage<
unsigned char> &I2);
592 virtual
void track(std::map<std::
string, const
vpImage<
unsigned char> *> &mapOfImages);
593 virtual
void track(std::map<std::
string, const
vpImage<
vpRGBa> *> &mapOfColorImages);
595#if defined(VISP_HAVE_PCL) && defined(VISP_HAVE_PCL_SEGMENTATION) && defined(VISP_HAVE_PCL_FILTERS) && defined(VISP_HAVE_PCL_COMMON)
597 std::map<std::string, pcl::PointCloud<pcl::PointXYZ>::ConstPtr> &mapOfPointClouds);
599 std::map<std::string, pcl::PointCloud<pcl::PointXYZ>::ConstPtr> &mapOfPointClouds);
603 std::map<std::string,
const std::vector<vpColVector> *> &mapOfPointClouds,
604 std::map<std::string, unsigned int> &mapOfPointCloudWidths,
605 std::map<std::string, unsigned int> &mapOfPointCloudHeights);
607 std::map<std::string,
const std::vector<vpColVector> *> &mapOfPointClouds,
608 std::map<std::string, unsigned int> &mapOfPointCloudWidths,
609 std::map<std::string, unsigned int> &mapOfPointCloudHeights);
612 std::map<std::string, const vpMatrix *> &mapOfPointClouds,
613 std::map<std::string, unsigned int> &mapOfPointCloudWidths,
614 std::map<std::string, unsigned int> &mapOfPointCloudHeights);
616 std::map<std::string, const vpMatrix *> &mapOfPointClouds,
617 std::map<std::string, unsigned int> &mapOfPointCloudWidths,
618 std::map<std::string, unsigned int> &mapOfPointCloudHeights);
621 virtual void computeProjectionError();
626 virtual
void computeVVSInit(std::map<std::
string, const
vpImage<
unsigned char> *> &mapOfImages);
627 virtual
void computeVVSInteractionMatrixAndResidu() VP_OVERRIDE;
628 virtual
void computeVVSInteractionMatrixAndResidu(std::map<std::
string, const
vpImage<
unsigned char> *> &mapOfImages,
631 virtual
void computeVVSWeights();
633 virtual
void initCircle(const
vpPoint &p1, const
vpPoint &p2, const
vpPoint &p3,
double radius,
int idFace = 0,
634 const std::
string &name =
"") VP_OVERRIDE;
636 virtual
void initCylinder(const
vpPoint &p1, const
vpPoint &p2,
double radius,
int idFace = 0,
637 const std::
string &name =
"") VP_OVERRIDE;
639 virtual
void initFaceFromCorners(
vpMbtPolygon &polygon) VP_OVERRIDE;
641 virtual
void initFaceFromLines(
vpMbtPolygon &polygon) VP_OVERRIDE;
643 virtual
void loadConfigFileXML(const std::
string &configFile,
bool verbose = true);
644#ifdef VISP_HAVE_NLOHMANN_JSON
645 virtual void loadConfigFileJSON(
const std::string &configFile,
bool verbose =
true);
648#if defined(VISP_HAVE_PCL) && defined(VISP_HAVE_PCL_SEGMENTATION) && defined(VISP_HAVE_PCL_FILTERS) && defined(VISP_HAVE_PCL_COMMON)
650 std::map<std::string, pcl::PointCloud<pcl::PointXYZ>::ConstPtr> &mapOfPointClouds);
653 std::map<std::string,
const std::vector<vpColVector> *> &mapOfPointClouds,
654 std::map<std::string, unsigned int> &mapOfPointCloudWidths,
655 std::map<std::string, unsigned int> &mapOfPointCloudHeights);
657 std::map<std::string, const vpMatrix *> &mapOfPointClouds,
658 std::map<std::string, unsigned int> &mapOfPointCloudWidths,
659 std::map<std::string, unsigned int> &mapOfPointCloudHeights);
663#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
670#ifdef VISP_HAVE_NLOHMANN_JSON
671 friend void to_json(nlohmann::json &j,
const TrackerWrapper &t);
672 friend void from_json(
const nlohmann::json &j, TrackerWrapper &t);
688 explicit TrackerWrapper(
int trackerType);
690 virtual inline vpColVector getError() const VP_OVERRIDE {
return m_error; }
692 virtual inline vpColVector getRobustWeights() const VP_OVERRIDE {
return m_w; }
694 virtual inline int getTrackerType()
const {
return m_trackerType; }
696 virtual void display(
const vpImage<unsigned char> &I,
const vpHomogeneousMatrix &cMo,
const vpCameraParameters &cam,
697 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel =
false) VP_OVERRIDE;
698 virtual
void display(const vpImage<vpRGBa> &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam,
699 const vpColor &col,
unsigned int thickness = 1,
bool displayFullModel = false) VP_OVERRIDE;
701 virtual std::vector<std::vector<
double> > getFeaturesForDisplay();
703 virtual std::vector<std::vector<
double> > getModelForDisplay(
unsigned int width,
unsigned int height,
704 const vpHomogeneousMatrix &cMo,
705 const vpCameraParameters &cam,
706 bool displayFullModel = false) VP_OVERRIDE;
708 virtual
void init(const vpImage<
unsigned char> &I) VP_OVERRIDE;
710 virtual
void loadConfigFile(const std::
string &configFile,
bool verbose = true) VP_OVERRIDE;
712 virtual
void reInitModel(const vpImage<
unsigned char> &I, const std::
string &cad_name,
713 const vpHomogeneousMatrix &cMo,
bool verbose = false,
714 const vpHomogeneousMatrix &T = vpHomogeneousMatrix()) VP_OVERRIDE;
715 virtual
void reInitModel(const vpImage<vpRGBa> &I_color, const std::
string &cad_name,
716 const vpHomogeneousMatrix &cMo,
bool verbose = false,
717 const vpHomogeneousMatrix &T = vpHomogeneousMatrix());
719 virtual
void resetTracker() VP_OVERRIDE;
721 virtual
void setCameraParameters(const vpCameraParameters &camera) VP_OVERRIDE;
723 virtual
void setClipping(const
unsigned int &flags) VP_OVERRIDE;
725 virtual
void setFarClippingDistance(const
double &dist) VP_OVERRIDE;
727 virtual
void setNearClippingDistance(const
double &dist) VP_OVERRIDE;
729 virtual
void setOgreVisibilityTest(const
bool &v) VP_OVERRIDE;
731 virtual
void setPose(const vpImage<
unsigned char> &I, const vpHomogeneousMatrix &cdMo) VP_OVERRIDE;
732 virtual
void setPose(const vpImage<vpRGBa> &I_color, const vpHomogeneousMatrix &cdMo) VP_OVERRIDE;
734 virtual
void setProjectionErrorComputation(const
bool &flag) VP_OVERRIDE;
736 virtual
void setScanLineVisibilityTest(const
bool &v) VP_OVERRIDE;
738 virtual
void setTrackerType(
int type);
740 virtual
void testTracking() VP_OVERRIDE;
742 virtual
void track(const vpImage<
unsigned char> &I) VP_OVERRIDE;
743 virtual
void track(const vpImage<vpRGBa> &I_color) VP_OVERRIDE;
744#if defined(VISP_HAVE_PCL) && defined(VISP_HAVE_PCL_SEGMENTATION) && defined(VISP_HAVE_PCL_FILTERS) && defined(VISP_HAVE_PCL_COMMON)
747#if !((__GNUC__ == 4) && (__GNUC_MINOR__ == 6))
752 virtual void track(
const vpImage<unsigned char> *
const ptr_I,
const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud);
756 virtual void computeVVS(
const vpImage<unsigned char> *
const ptr_I);
757 virtual void computeVVSInit() VP_OVERRIDE;
758 virtual
void computeVVSInit(const vpImage<
unsigned char> *const ptr_I);
759 virtual
void computeVVSInteractionMatrixAndResidu() VP_OVERRIDE;
760 using vpMbEdgeTracker::computeVVSInteractionMatrixAndResidu;
761 virtual
void computeVVSInteractionMatrixAndResidu(const vpImage<
unsigned char> *const ptr_I);
762 using vpMbTracker::computeVVSWeights;
763 virtual
void computeVVSWeights() VP_OVERRIDE;
765 virtual
void initCircle(const vpPoint &p1, const vpPoint &p2, const vpPoint &p3,
double radius,
int idFace = 0,
766 const std::
string &name =
"") VP_OVERRIDE;
768 virtual
void initCylinder(const vpPoint &p1, const vpPoint &p2,
double radius,
int idFace = 0,
769 const std::
string &name =
"") VP_OVERRIDE;
771 virtual
void initFaceFromCorners(vpMbtPolygon &polygon) VP_OVERRIDE;
772 virtual
void initFaceFromLines(vpMbtPolygon &polygon) VP_OVERRIDE;
774 virtual
void initMbtTracking(const vpImage<
unsigned char> *const ptr_I);
776#if defined(VISP_HAVE_PCL) && defined(VISP_HAVE_PCL_SEGMENTATION) && defined(VISP_HAVE_PCL_FILTERS) && defined(VISP_HAVE_PCL_COMMON)
777 virtual void postTracking(
const vpImage<unsigned char> *
const ptr_I,
778 const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud);
779 virtual void preTracking(
const vpImage<unsigned char> *
const ptr_I,
780 const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &point_cloud);
782 virtual void postTracking(
const vpImage<unsigned char> *
const ptr_I =
nullptr,
const unsigned int pointcloud_width = 0,
783 const unsigned int pointcloud_height = 0);
784 virtual void preTracking(
const vpImage<unsigned char> *
const ptr_I =
nullptr,
785 const std::vector<vpColVector> *
const point_cloud =
nullptr,
786 const unsigned int pointcloud_width = 0,
const unsigned int pointcloud_height = 0);
787 virtual void preTracking(
const vpImage<unsigned char> *
const ptr_I =
nullptr,
788 const vpMatrix *
const point_cloud =
nullptr,
789 const unsigned int pointcloud_width = 0,
const unsigned int pointcloud_height = 0);
791 virtual void reInitModel(
const vpImage<unsigned char> *
const I,
const vpImage<vpRGBa> *
const I_color,
792 const std::string &cad_name,
const vpHomogeneousMatrix &cMo,
bool verbose =
false,
793 const vpHomogeneousMatrix &T = vpHomogeneousMatrix());
795#if defined(VISP_HAVE_PCL) && defined(VISP_HAVE_PCL_SEGMENTATION) && defined(VISP_HAVE_PCL_FILTERS) && defined(VISP_HAVE_PCL_COMMON)
798#if !((__GNUC__ == 4) && (__GNUC_MINOR__ == 6))
803#if defined(VISP_HAVE_MODULE_KLT) && defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_VIDEO)
804 virtual void setPose(
const vpImage<unsigned char> *I,
const vpImage<vpRGBa> *I_color,
805 const vpHomogeneousMatrix &cdMo) VP_OVERRIDE;
807 virtual void setPose(
const vpImage<unsigned char> *I,
const vpImage<vpRGBa> *I_color,
808 const vpHomogeneousMatrix &cdMo);
811#ifdef VISP_HAVE_NLOHMANN_JSON
812 friend void to_json(nlohmann::json &j,
const TrackerWrapper &t);
813 friend void from_json(
const nlohmann::json &j, TrackerWrapper &t);