39 #ifndef VPPLANAROBJECTDETECTOR_H_
40 #define VPPLANAROBJECTDETECTOR_H_
42 #include <visp3/core/vpConfig.h>
44 #if (VISP_HAVE_OPENCV_VERSION >= 0x020000) && \
45 (VISP_HAVE_OPENCV_VERSION < 0x030000) // Require opencv >= 2.0.0 and < 3.0.0
47 #if (VISP_HAVE_OPENCV_VERSION >= 0x020101) // Require opencv >= 2.1.1
48 #include <opencv2/calib3d/calib3d.hpp>
49 #include <opencv2/features2d/features2d.hpp>
50 #include <opencv2/imgproc/imgproc.hpp>
51 #elif (VISP_HAVE_OPENCV_VERSION >= 0x020000) // Require opencv >= 2.0.0
56 #include <visp3/core/vpCameraParameters.h>
57 #include <visp3/core/vpHomogeneousMatrix.h>
58 #include <visp3/core/vpImage.h>
59 #include <visp3/core/vpImagePoint.h>
60 #include <visp3/core/vpPoint.h>
61 #include <visp3/core/vpRect.h>
62 #include <visp3/vision/vpFernClassifier.h>
63 #include <visp3/vision/vpHomography.h>
140 class VISP_EXPORT vpPlanarObjectDetector
145 vpFernClassifier fern;
154 std::vector<cv::Point2f> dst_corners;
160 std::vector<cv::Point2f> ref_corners;
167 std::vector<vpImagePoint> currentImagePoints;
170 std::vector<vpImagePoint> refImagePoints;
174 unsigned int minNbMatching;
178 vpPlanarObjectDetector();
179 vpPlanarObjectDetector(
const std::string &dataFile,
const std::string &objectName);
180 virtual ~vpPlanarObjectDetector();
195 void recordDetector(
const std::string &objectName,
const std::string &dataFile);
196 void load(
const std::string &dataFilename,
const std::string &objName);
208 std::vector<vpImagePoint> getDetectedCorners()
const;
215 vpFernClassifier &getFernClassifier() {
return this->fern; }
223 inline void getHomography(
vpHomography &_H)
const { _H = this->homography; }
230 inline unsigned int getNbRefPoints() {
return (
unsigned int)currentImagePoints.
size(); }
240 void getReferencePoint(
const unsigned int _i,
vpImagePoint &_imPoint);
261 void setMinNbPointValidation(
const unsigned int _min) { this->minNbMatching = _min; }
269 unsigned int getMinNbPointValidation()
const {
return this->minNbMatching; }
274 void initialiseRefCorners(
const cv::Rect &_modelROI);