当我尝试运行示例 find_obj.cpp 或任何 OpenCV SURF 程序时,我在执行代码时在命令提示符中收到以下错误.项目构建时没有错误和警告.我使用的是 VS2011 beta、OpenCV 2.4 和 windows7.
错误信息:
OpenCV Error: The function/feature is not implemented < OpenCV was built without SURF support> in unknown function,file ......srcopencvmoduleslegacysrcfeatures2d.cpp,line 77
我尝试使用 Cmake 再次构建 OpenCV 2.4,然后在调试模式下使用 VS2011,然后在 IDE 中添加 lib 路径,但仍然没有结果.
我该如何解决?
#include <opencv2/objdetect/objdetect.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/legacy/legacy.hpp> #include <opencv2/legacy/compat.hpp> #include <opencv2/flann/flann.hpp> #include <opencv2/calib3d/calib3d.hpp> #include <opencv2/nonfree/features2d.hpp> #include <opencv2/nonfree/nonfree.hpp> using namespace std; using namespace cv; int main() { cv::initModule_nonfree();//THIS LINE IS IMPORTANT IplImage *image1 = cvLoadImage("C:\SURF\1.jpg"); IplImage *image2 = cvLoadImage("C:\SURF\2.jpg"); CvMemStorage* memoryBlock = cvCreateMemStorage(); CvSeq* image1KeyPoints; CvSeq* image1Descriptors; CvSeq* image2KeyPoints; CvSeq* image2Descriptors; // Only values with a hessian greater than 500 are considered for keypoints CvSURFParams params = cvSURFParams(500,1); cvExtractSURF(image1,&image1KeyPoints,&image1Descriptors,memoryBlock,params); cvExtractSURF(image2,&image2KeyPoints,&image2Descriptors,params); return 0; }