surf和sift算法都是在头文件#include <opencv2/features2d/features2d.hpp>中,但在新的opencv版本出来后,如果仍然使用这个头文件就会出现编译错误,我用的是opencv 2.4.4的,下面两个是在做surf 和 sift 特征点检测时遇到的问题:
1、 'SurfFeatureDetector' : is not a member of 'cv'
解决方法:
把 opencv_nonfree243d.lib 加入lib库中;
加上两个头文件:
#include <opencv2/nonfree/features2d.hpp>
#include <opencv2/nonfree/nonfree.hpp>
2、'BruteForceMatcher' : is not a member of 'cv'
解决方法:
把opencv_legacy246d.lib加到链接器里;
头文件加上:
#include<opencv2\legacy\legacy.hpp>