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
200 virtual ~vpKeyPointSurf();
204 const unsigned int width);
208 const unsigned int width);
212 std::list<int *> *
matchPoint(std::list<float *> descriptorList, std::list<int> laplacianList);
213 float *getDescriptorReferencePoint(
const int index);
214 int getLaplacianReferencePoint(
const int index);
215 void getDescriptorParamReferencePoint(
const int index,
int &size,
float &dir);
229 void setHessianThreshold(
double hessian_threshold)
231 this->hessianThreshold = hessian_threshold;
232 params = cvSURFParams(this->hessianThreshold, this->descriptorType);
241 void setDescriptorType(vpDescriptorType descriptor_type)
243 this->descriptorType = descriptor_type;
244 params = cvSURFParams(this->hessianThreshold, this->descriptorType);
252 double getHessianThreshold() {
return hessianThreshold; }
259 vpDescriptorType getDescriptorType() {
return descriptorType; }
266 CvMemStorage *storage;
268 CvMemStorage *storage_cur;
270 CvSeq *image_keypoints;
271 CvSeq *image_descriptors;
273 CvSeq *ref_keypoints;
274 CvSeq *ref_descriptors;
283 double hessianThreshold;
284 vpDescriptorType descriptorType;