OpenCV2.4.0以后的版本将SIFT和SURF特征检测放到了一个新的模块nonfree,可能是因为一些版权的问题吧。
其不能运行的解决方法是:
1、头文件的问题:
由于转移到了新的模块中,因此头文件也要跟着改一下
#include <opencv2\nonfree\nonfree.hpp>
打开nonfree.hpp文件可以看到里面有个初始化的模块的部分,因此在程序中就不用再初始化了。
#ifndef __OPENCV_NONFREE_HPP__
#define __OPENCV_NONFREE_HPP__
#include "opencv2/nonfree/features2d.hpp"
namespace cv
{
CV_EXPORTS_W bool initModule_nonfree();
}
#endif
2、动态链接库的问题:
有了新的模块当然也在把它加到VC的附加依赖项里去
到此问题解决!!!