24
24
#include " slam/SL_FeatureMatching.h"
25
25
#include " SL_CoSLAMBA.h"
26
26
#include " SL_GlobParam.h"
27
-
27
+ # if CV_MAJOR_VERSION <= 2
28
28
#if CV_MINOR_VERSION > 3
29
29
#include < opencv2/nonfree/features2d.hpp>
30
30
#endif
31
+ #elif (CV_MAJOR_VERSION == 3)
32
+ #include < opencv2/xfeatures2d.hpp>
33
+ #endif
31
34
32
35
// #define DEBUG_MODE
33
36
InitMap::InitMap () :
@@ -41,16 +44,23 @@ void InitMap::detectSurfFeats(int iCam) {
41
44
const ImgG* img = m_pImgGray[iCam];
42
45
KpVec& keyPts = m_cvSurfPts[iCam];
43
46
std::vector<float > desc;
47
+
48
+ cv::Mat cvImg (img->rows , img->cols , CV_8UC1, img->data );
49
+ #if CV_MAJOR_VERSION <= 2
44
50
#if CV_MINOR_VERSION > 3
45
51
cv::SurfFeatureDetector surf (400 , 4 , 2 , false );
46
- cv::Mat cvImg (img->rows , img->cols , CV_8UC1, img->data );
47
52
surf (cvImg, cv::Mat (), keyPts, desc);
48
53
int dimDesc = surf.descriptorSize ();
49
54
#else
50
55
cv::SURF surf (400 , 4 , 2 , false );
51
- cv::Mat cvImg (img->rows , img->cols , CV_8UC1, img->data );
52
56
surf (cvImg, cv::Mat (), keyPts, desc);
53
57
int dimDesc = surf.descriptorSize ();
58
+ #endif
59
+ #elif CV_MAJOR_VERSION == 3
60
+ using namespace cv ::xfeatures2d;
61
+ cv::Ptr <SURF> surf = SURF::create (400 , 4 , 2 , false );
62
+ surf->detectAndCompute (cvImg,cv::Mat (), keyPts, desc);
63
+ int dimDesc = surf->descriptorSize ();
54
64
#endif
55
65
m_surfDesc[iCam].resize (keyPts.size (), dimDesc);
56
66
0 commit comments