Kiedy próbuję uruchomić próbkę find_obj.cpp
lub dowolny program SURF OpenCV, pojawia się następujący błąd w wierszu polecenia podczas wykonywania kodu. Projekt jest budowany bez błędów i ostrzeżeń. Używam wersji beta VS2011, OpenCV 2.4 i Windows7.Funkcja OpenCV SURF nie jest zaimplementowana
komunikat błędu:
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
że próbuje ponownie budowie OpenCV 2,4, a następnie przy użyciu cUpewnij VS2011 w trybie debugowania, a następnie dodano lib ścieżek IDE, ale bez rezultatu.
Jak mogę to naprawić?
#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;
}
ya goeded na forach opencv i zawierałem opencv_nonfree240.lib ..i nagłówki to 1 ...... opencv2/objdetect/objdetect.hpp ....... 2 ..... .opencv2/features2d/features2d.hpp ..... 3 ......opencv2/highgui/highgui.hpp ...... 4 ...... opencv2/calib3d/calib3d.hpp ..... 5 ...... opencv2/nonfree/nonfree.hpp .. .... 6 ...... opencv2/imgproc/imgproc_c.h ....... 7 ...... opencv2/legacy/legacy.hpp ...... 8. ..... opencv2/legacy/compat.hpp ...... –
@Astor .... w IDE ... ustawiam ścieżkę do C: \ OpenCV2.4 \ opencv \ build \ x86 \ vc10 \ lib ... zapisałem dysk opencv2.4 in c ... folder bin zawiera całą bibliotekę dll, w której sprawdziłem, zawiera plik opencv_nonfree240.dll ... oraz w dodatkowych zależnościach, które dałem opencv_nonfree240. lib –
katalogi bibliotek = C: \ OpenCV2.4 \ opencv \ build \ x86 \ vc10 \ lib dodatkowe zależności = opencv_nonfree240.lib to jest moje ustawienie w VS2011 –