Die OpenCV SURF-Funktion ist nicht implementiert

Wenn ich versuche, das Beispiel auszuführenfind_obj.cpp oder ein OpenCV SURF-Programm Ich erhalte die folgende Fehlermeldung in der Eingabeaufforderung während der Ausführung des Codes. Das Projekt wird ohne Fehler und Warnungen erstellt. Ich benutze VS2011 Beta, OpenCV 2.4 und Windows7.

Fehlermeldung:

OpenCV Error: The function/feature is not implemented < OpenCV was built without SURF support> in unknown function,file ..\..\..\src\opencv\modules\legacy\src\features2d.cpp, line 77

Ich habe versucht, OpenCV 2.4 erneut mit Cmake und anschließend VS2011 im Debug-Modus zu erstellen, und dann die lib-Pfade in der IDE hinzugefügt, aber immer noch kein Ergebnis.

Wie kann ich das beheben?

    #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, 0, &image1KeyPoints, &image1Descriptors, memoryBlock, params);
   cvExtractSURF(image2, 0, &image2KeyPoints, &image2Descriptors, memoryBlock, params);

   return 0;
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage