IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

cvExtractSurf : exception


Sujet :

OpenCV

  1. #1
    Membre éclairé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :

    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 :

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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!
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 17h48
  2. Exception & Try..catch
    Par PurL dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/12/2002, 15h35
  3. Réponses: 3
    Dernier message: 01/11/2002, 14h30
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo