1 pièce(s) jointe(s)
cvExtractSurf : exception
Bonjour,
Avec la version 2.4.2 de OpenCV, j'essaie de réaliser une extraction de points d'intérêt de l'image ci-jointe via la méthode SURF.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| int main(int argc, const char* argv[])
{
IplImage* gysImg = cvLoadImage("./../Images/test.jpg", CV_LOAD_IMAGE_GRAYSCALE);
cvNamedWindow("Grayscale image");
cvShowImage("Grayscale image", gysImg);
// Extract keypoints with SURF algorithm
CvMemStorage* storage = cvCreateMemStorage(0);
CvSeq* keypoints = NULL;
CvSeq* descriptors = NULL;
CvSURFParams params = cvSURFParams(400);
cvExtractSURF(gysImg, NULL, &keypoints, &descriptors, storage, params);
cvDestroyWindow("Grayscale image");
// Free memory
cvRelease((void **)&keypoints);
cvReleaseMemStorage(&storage);
cvReleaseImage(&gysImg);
return 0;
} |
A l'exécution, j'obtiens une exception sur la méthode cvExtractSURF :
Citation:
Exception non gérée à 0x755ec41f dans Test.exe*: Exception Microsoft C++*: cv::Exception à l'emplacement mémoire 0x0038f3f0..
La pile d'appels semble s'être arrêtée sur KernelBase.dll!755ec41f().
J'ai essayé de voir si le problème avait déjà été rencontré mais je n'ai trouvé encore aucune solution.
Quelques informations trouvées :
- Il semblerait que dans les versions 2.4.0 et 2.4.1, cette méthode soit buguée mais je suis en 2.4.2.
- La méthode peut crasher si l'image n'a pas de points d'intérêt (je ne pense pas que ce soit le cas ici).
Avez-vous une idée ?
Merci beaucoup :)
Edit : J'ai obtenu finalement le message suivent en console :
Citation:
OpenCV Error : The function/feature is not implemented (OpenCV was built without SURF support) in unknown function, file C:\Users\.......\OpenCV232\modules\legacy\src\feature2d.cpp, line 77
.
OpenCV a pourtant bien été compilé.
En fait, le problème était qu'il manquait l'appel à la méthode
Code:
cv::initModule_nonfree()
déclarée dans le fichier nonfree.hpp. Il reste ensuite à ajouter la dll nonfree242d pour le mode debug et ça fonctionne!