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 :

Libération de mémoire d'une cvMat


Sujet :

OpenCV

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 16
    Points : 7
    Points
    7
    Par défaut Libération de mémoire d'une cvMat
    Bonjour,
    Comme l'intitulé le montre, j'ai besoin d'aide pour libérer la mémoire d'une cvMat.
    J'ai essayé avec la méthode cvReleaseMat() mais ça me donne une erreur.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CvPoint *points = (CvPoint*)malloc( nbMaxPoints * sizeof(points[0]));
    CvMat pointMat = cvMat( 1, nbMaxPoints, CV_32SC2, points );
    //...//
    cvReleaseMat(pointMat); // Me retourne l'erreur
    Tout fonctionne sauf la libération de la mémoire et donc au bout d'un certain nombre d'image traitées, ça commence à être vraiment long pour effectuer le traitement.
    Finalement, ce qui occupe la mémoire, c'est points alors peut être que c'est ça qu'il faut que je cherche à libérer mais je n'ai pas trouvé comment...

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Points : 194
    Points
    194
    Par défaut
    Salut,
    Comme indique dans le manuel cvRelease prend:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void cvReleaseMat( CvMat** mat );
    Donc moi je changerai ton code en quelquechose comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CvPoint *points = (CvPoint*)malloc( nbMaxPoints * sizeof(points[0]));
    	CvMat *pointMat = cvCreateMat(1,nbMaxPoints,CV_32SC2);
    	pointMat->data.fl=(float *)points;
    	cvReleaseMat(&pointMat);
    Je sais pas si ca t'a aide.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Oui merci, ça fonctionne avec ça.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Points : 194
    Points
    194
    Par défaut
    Tu peux marquer le sujet comme resolu comme ca les gens sauront qu'il y a une reponse quand ils chercheront pour la meme chose.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Autre petite question, aurais tu une idée de comment libérer la mémoire de mon CvPoint *points?
    J'ai testé avec CvFree_() et CvReleaseData() mais sans résultats...
    Merci à toi en tout cas.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Points : 533
    Points
    533
    Par défaut
    avec ca ?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Non ça aussi j'avais testé, ne fonctionne pas non plus!!!
    Alors peut être je me plante sur un truc mais je ne vois pas...

  8. #8
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Points : 194
    Points
    194
    Par défaut
    Moi je dirais que vu que tu l'a cree avec malloc pour le liberer il suffit de faire

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Ça me mets un message d'erreur quand je parcours l'instruction mais si je l'ignore alors la mémoire est bien libérer et le programme continu jusqu'à ce qu'il retombe dessus.
    Donc la mémoire est libéré mais ça m'indique quand même une erreur.

    A noter qu'en release, cela fonctionne très bien. L'erreur ne se produit qu'en debug...

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/05/2014, 08h12
  2. Problème de libération de la mémoire dans une fonction
    Par ArnaudFu1 dans le forum Débuter
    Réponses: 2
    Dernier message: 23/02/2012, 16h21
  3. Libération mémoire dans une CMap
    Par BigzYeah dans le forum MFC
    Réponses: 0
    Dernier message: 19/01/2011, 17h01
  4. Affectation et libération mémoire d'une WideString
    Par delphidebutant dans le forum Débuter
    Réponses: 5
    Dernier message: 29/10/2010, 08h55
  5. problème libération mémoire après une DLL
    Par salseropom dans le forum C
    Réponses: 22
    Dernier message: 03/09/2008, 12h51

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