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

Python Discussion :

OpenCV et Python 2.4


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut OpenCV et Python 2.4
    Bonjour
    J'ai un petit problème avec la librairie OpenCV (traitement d'image) que j'utilise sous Python 2.4.
    Pour mon traitement, je met des images en mémoire que je désalloue ensuite avec la fonction cvReleaseImage. Le problème c'est que Python ne semble pas libérer cette mémoire et la RAM du PC est saturée très vite. Surtout que j'ai des images 800*600 8bit (parfois plus, ca dépend des caméras utilisées)

    J'ai lu que Python 2.4 était buggé au niveau de la gestion mémoire. Est ce à cause de cela que vient mon problème?
    Je pense que Python 2.5 le gère mieux, malheureusement je suis obligé d'utiliser la version 2.4 pour des raisons de compatibilités avec un autre soft.

    Sinon, existe il des solution pour libérer la mémoire?

    Merci

  2. #2
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Par défaut
    Je suppose que tu as déjà essayé de forcer la libération mémoire des objets en affectant à None.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    img = Image('fichier.bmp')
    ...
    img = None
    Regarde aussi du côté du module gc (gc.collect())

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut
    Merci pour ces conseils, malheureusement, forcer les objets à None ne fonctionne pas, et pour ce qui est du module gc, j'avais déjà regardé de ce coté. Je ne vois pas trop comment l'utiliser, mais bon, je vais m'y plonger un peu plus.

  4. #4
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Par défaut
    L'utilisation de gc est trés simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import gc
     
    gc.collect()
    Cela va transformer toutes les variables à refcount à 0 du statut de "à collecter" à "collectées" et libérer la mémoire associée.

    Pour mémoire :

    Ne fait que placer la variable obj en état "à collecter".

    Donc les 2 astuces sont à utiliser en même temps.

    Pour finir, au vu de ton problème je pencherais plus pour une mauvaise gestion mémoire d'openCV, python 2.4 à ma connaissance n'as pas vraiment de pb mémoire. Essaye d'upgrader openCV ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut
    Bon
    J'ai testé pas mal de choses, mais rien ne résoud mon problème. Mais le soucis doit venir de moi car j'ai le même problème avec Python 2.5. Or pour Python 2.5, j'ai utilisé une autre version d'openCV.

  6. #6
    Membre éprouvé Avatar de hunta_kirua
    Profil pro
    Inscrit en
    Février 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 110
    Par défaut
    Salut,

    J'utilise opencv (sous vs c++ par contre) et je n'ai pas problème avec la gestion mémoire (à part ceux que je fais des fois). peux-tu poster la partie du code qui pose problème ?

    A+

    Hunta

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

Discussions similaires

  1. Reconnaissance faciale (OpenCv?) avec Python 3.4
    Par an10fp11 dans le forum Bibliothèques tierces
    Réponses: 7
    Dernier message: 30/06/2014, 07h47
  2. traitement d'image: segmentation avec opencv dans python
    Par Bimboucha dans le forum Bibliothèques tierces
    Réponses: 25
    Dernier message: 09/04/2014, 15h14
  3. opencv avec python
    Par gozilla dans le forum Général Python
    Réponses: 5
    Dernier message: 29/12/2010, 10h31
  4. [Python+OpenCv] Lecture Vidéo
    Par vinzrr dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 28/11/2008, 08h54
  5. Installation d'OpenCV pour Python
    Par xenosender dans le forum OpenCV
    Réponses: 0
    Dernier message: 20/11/2007, 23h16

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