Lorsque j'essaie d'exécuter l'exemple find_obj.cpp
ou un programme OpenCV SURF, l'erreur suivante apparaît dans l'invite de commande lors de l'exécution du code. Le projet se construit sans erreurs et avertissements. J'utilise VS2011 beta, OpenCV 2.4 et windows7.La fonction OpenCV SURF n'est pas implémentée
Message d'erreur:
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
j'ai essayé de construire le OpenCV 2.4 à nouveau en utilisant Cmake puis VS2011 en mode débogage, puis ajouté les chemins lib dans l'IDE, mais toujours pas de résultat.
Comment puis-je résoudre ce problème?
#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 j'ai googlé les forums d'opencv et j'ai inclus l'opencv_nonfree240.lib ..et les en-têtes sont 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/héritage/compat.hpp ...... –
@Astor .... dans l'IDE ... i définir le chemin vers le répertoire C: \ OpenCV2.4 \ OpenCV \ build \ x86 \ vc10 \ lib ... j'ai sauvegardé l'opencv2.4 dans le lecteur c ... le dossier bin contient toute la DLL où j'ai vérifié qu'il contient l'opencv_nonfree240.dll ... et dans les dépendances supplémentaires j'ai donné l'opencv_nonfree240. lib –
répertoires bibliothèque = C: \ OpenCV2.4 \ OpenCV \ build \ x86 \ VC10 \ lib dépendances supplémentaires = opencv_nonfree240.lib ceci est mon réglage dans VS2011 –