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érer la mémoire allouée par iplImage


Sujet :

OpenCV

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 16
    Points
    16
    Par défaut Libérer la mémoire allouée par iplImage
    Bonjour,
    J'aimerais bien libérer la mémoire après chaque traitement appliqué à l'image puisque j'applique un traitement sur un répertoire qui contient plusieurs images.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cv::Mat mDst = pretreat_smooth_bilatfilter->IplImage2SmoothBilatFilter(iplImageR);
            IplImage iplImageRFiltered = mDst;
    Je sais que je devrais utiliser cvReleaseImage et cvReleaseImageHeader, mais je ne sais pas comment l'appliquer sur iplImage.
    Merci.
    Cordialement,
    Maroua

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 72
    Points : 104
    Points
    104
    Par défaut
    Bonjour,
    Pour le cvReleaseImage, on lui passe le pointeur de l'image,

    cvReleaseImage(&iplImageRFiltered) par exemple.

    il faut faire attention à l'assignation d'objet, je t'invite a lire cette page : http://opencv.willowgarage.com/docum...anagement.html

    b courage

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur 3D
    Inscrit en
    Avril 2008
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur 3D

    Informations forums :
    Inscription : Avril 2008
    Messages : 400
    Points : 968
    Points
    968
    Par défaut
    Alors déjà, tu mélanges les versions C et C++ d'OpenCV, ce qui est loin d’être recommandable. Restes-en a la version C++ qui utilise les cv::Mat et laisses tomber les IplImage qui ne seront que sources de confusions et de fuites mémoires. Les cv::Mat ont l'avantage de gérer leur mémoire intelligemment: la mémoire est détruire quand on en a plus besoin, et est partagées entre toutes les matrices qui ont été crées a partir de la même cv::Mat.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    J'ai déjà utilisée une fonction qui utilise une iplImage, mais je n'arrive pas à utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    cv::Mat mDst = pretreat_smooth_bilatfilter->IplImage2SmoothBilatFilter(iplImageR);
    IplImage iplImageRFiltered = mDst;
    cvReleaseImage(&iplImageRFiltered);
    cvReleaseImageHeader(&iplImageRFiltered);
    Quelqu'un pourra m'aider pour libérer de la mémoire avec IplImage et non *IplImage?
    Merci

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    IplImage* iplImageRFiltered = new IplImage(mDst);
    cvReleaseImage(&iplImageRFiltered);
    cvReleaseImageHeader(&iplImageRFiltered);

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

Discussions similaires

  1. Comment libérer la mémoire alloué a un objet ?
    Par techz dans le forum Débuter avec Java
    Réponses: 14
    Dernier message: 26/08/2009, 09h44
  2. Mémoire allouées par les dll.. où ?
    Par qdaemon_fr dans le forum Général Java
    Réponses: 0
    Dernier message: 19/05/2009, 11h03
  3. Mémoire allouée par perl
    Par CarpeNoctem dans le forum Langage
    Réponses: 7
    Dernier message: 07/08/2007, 20h39
  4. Libérer la mémoire consommée par un DataModule
    Par liviertlse dans le forum Bases de données
    Réponses: 16
    Dernier message: 10/05/2007, 15h59
  5. Libérer la mémoire allouée à un objet
    Par boudou dans le forum Langage
    Réponses: 6
    Dernier message: 21/02/2006, 23h25

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