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 :

Problème avec les cv::mat


Sujet :

OpenCV

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Par défaut Problème avec les cv::mat
    Bonjour,

    Je vais devenir fou.
    Je tourne sous win7/64 avec codeblock à jours.
    J'ai un code qui tournait sans problème.
    Suite à un problème, j'ai du réinstaller opencv 2.2.
    Depuis j'ai toujours les messages d'erreurs suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    obj\Debug\main.o||In function `~Mat':|
    C:\OpenCV2.2\include\opencv2\core\mat.hpp|297|undefined reference to `cv::fastFree(void*)'|
    obj\Debug\main.o:C:\OpenCV2.2\include\opencv2\core\mat.hpp|381|undefined reference to `cv::Mat::deallocate()'|
    obj\Debug\mesh.o:F:\C\match_mesh_skeleton\v4\mesh.cpp|208|undefined reference to `cv::eigen(cv::Mat const&, cv::Mat&, int, int)'|
    obj\Debug\mesh.o:F:\C\match_mesh_skeleton\v4\mesh.cpp|233|undefined reference to `cv::Mat::copyTo(cv::Mat&) const'|
    obj\Debug\mesh.o:C:\OpenCV2.2\include\opencv2\core\mat.hpp|367|undefined reference to `cv::Mat::create(int, int const*, int)'|
    ||=== Build finished: 5 errors, 0 warnings ===|
    J'ai le même problème avec visual studio 2008.
    Je ne sais vraiment pas d'ou cela vient. Les links semblent bon, les fichiers .h semblent être trouvé, mais j'ai toujours ce problème.
    Je n'ai pas non plus changé le répertoire d'installation d'opencv.
    J'ai tenté de revenir à opencv 2.1, de compiler la version en .zip au lieu d'utiliser l'instal en .exe ... rien, toujours ce problème de lien.

    Si je compile un code simple qui ne fait pas appel aux matrice, cela fonctionne très bien.

    Si quelqu'un a une idée.

    Merci d'avance.

  2. #2
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    Bonjour

    Est ce que cela ne viendrait pas de la facon dont tu les appelles, du genre les proto ont changé et tu essaye de lui faire passer un paramètre de trop ou un de moins ?

    edit : c'est carrément les protos de openCV qui bug

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Par défaut
    Salut, merci pour ta réponse.
    Non je ne pense pas car je n'ai fait que réinstaller opencv.

    Même ce très court programme ne compile pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <iostream>
    #include "cv.h"
    #include "highgui.h"
     
    int main()
    {
        float a[] = {0.707,-0.707,0,1, 0.707,0.707,0,1, 0,0,1,0, 0,0,0,1};
        cv::Mat mat(4,4,CV_32FC1,a);
        std::cout << mat.at<float>(0,0) << " " << mat.at<float>(0,1) << std::endl;
        return 0;
    }
    J'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    F:\C\match_mesh_skeleton\test_mat\main.o:main.cpp:(.text$_ZN2cv3MatD1Ev[cv::Mat::~Mat()]+0x2b)||undefined reference to `cv::fastFree(void*)'|
    F:\C\match_mesh_skeleton\test_mat\main.o:main.cpp:(.text$_ZN2cv3Mat7releaseEv[cv::Mat::release()]+0x3c)||undefined reference to `cv::Mat::deallocate()'|
    ||=== Build finished: 2 errors, 0 warnings ===|
    De plus, ce n'est pas moi qui appelle la fonction fastFree, mais le programme quand il alloue/désaloue la mémoire pour la matrice.

  4. #4
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    l'erreur vient de la fonction par exemple pour ton create dans mat.hpp à la ligne 367 c'est une fonction interne qui plante je ne suis pas aller voir plus loin, je n'y connais malheureusement pas grand chose en c++, il vaudrait trouver d'ou vient ce create (de même pour deallocate, il est utilisé dans release) et voir si le link est bien fait

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Par défaut
    Merci pour ta réponse.

    map.hpp c'est un fichier entête de la librairie de opencv.
    Ce n'est pas moi qui ai codé ça

  6. #6
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    Non ce que je voulais dire c'est que tu as peut être oublié un link du coup il faut que tu trouve d'ou vient ce create pour trouver le link oublié

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Par défaut
    Je me doute qu'une librairie ne doit pas être link, mais je ne vois pas pourquoi.
    En réinstallant opencv, je n'avais pas changé les répertoires d'installation, et donc je n'avais pas changé les liens à la compilation du projets.

    Le projet trouvait bien les liens de bases comme cv.h, mais pas les liens nécessaires pour les matrices. Et c'est là ou je bloque depuis deux jours.

    En tout cas merci pour l'aide.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Par défaut
    Problème résolu.
    J'ai tout recompilé de manière à avoir les fichier en .a au lieu de .lib.

    Il semble que codeblock n'aime pas les .lib généré par visual studio ...

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

Discussions similaires

  1. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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