39 #ifndef vpKeyPointSurf_H
40 #define vpKeyPointSurf_H
49 #include <visp3/vision/vpBasicKeyPoint.h>
54 #if defined(VISP_HAVE_OPENCV_NONFREE) && (VISP_HAVE_OPENCV_VERSION < 0x030000)
56 #if (VISP_HAVE_OPENCV_VERSION >= 0x020400) // Require opencv >= 1.1.0 < 3.0.0
57 #include <opencv2/core/core.hpp>
58 #include <opencv2/features2d/features2d.hpp>
59 #include <opencv2/legacy/compat.hpp>
60 #include <opencv2/nonfree/nonfree.hpp>
61 #elif (VISP_HAVE_OPENCV_VERSION >= 0x020101) // Require opencv >= 2.1.1
62 #include <opencv2/features2d/features2d.hpp>
63 #elif (VISP_HAVE_OPENCV_VERSION >= 0x010100) // Require opencv >= 1.1.0
199 virtual ~vpKeyPointSurf();
211 std::list<int *> *
matchPoint(std::list<float *> descriptorList, std::list<int> laplacianList);
212 float *getDescriptorReferencePoint(
int index);
213 int getLaplacianReferencePoint(
int index);
214 void getDescriptorParamReferencePoint(
int index,
int &size,
float &dir);
228 void setHessianThreshold(
double hessian_threshold)
230 this->hessianThreshold = hessian_threshold;
231 params = cvSURFParams(this->hessianThreshold, this->descriptorType);
240 void setDescriptorType(vpDescriptorType descriptor_type)
242 this->descriptorType = descriptor_type;
243 params = cvSURFParams(this->hessianThreshold, this->descriptorType);
251 double getHessianThreshold() {
return hessianThreshold; }
258 vpDescriptorType getDescriptorType() {
return descriptorType; }
265 CvMemStorage *storage;
267 CvMemStorage *storage_cur;
269 CvSeq *image_keypoints;
270 CvSeq *image_descriptors;
272 CvSeq *ref_keypoints;
273 CvSeq *ref_descriptors;
282 double hessianThreshold;
283 vpDescriptorType descriptorType;