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

Calcul scientifique Python Discussion :

Lenteur de sauvergarde d'image


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de airballman
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 256
    Par défaut Lenteur de sauvergarde d'image
    Bonjour,
    j'ai un problème tout bete que j'aimerai régler, sans trouver de réponse ailleurs sur la toile.

    J'ai une image de grande taille, de laquelle j'extrais des imagettes d'eniron 30*30 px apres avoir recherché les zones interessantes de cete image.

    CEs imagettes sont suavegardées sur le disque (il y en a environ 30 a chaque image traitée) grace a la commande savefig de matplotlib.pyplot

    Le problème est que la sauvagarde de ces 30 imagettes prend un temps que je trouve enorme (environ 20 sec) ; et qui double le temps dexecution de mon script, meme en baissant les dpi de limage.

    Existe il une methode qui premettrait de reduire fortement ce temps ???

    Merci d'avance!

    Julien

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    les acces disque cest toujours trop long.
    tout depend de ce que t veux faire; si tu as physiquement besoins de 30 vignettes, alors patience.
    si c'est ton soft qui se sert des vignettes, tu peux creer un fichier qui liste les zones interessantes de l'image de depart au lieu de vignettes. c'est plus rapide de fragmenter une image que d'en charger 30.

  3. #3
    Membre confirmé Avatar de airballman
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 256
    Par défaut
    SAlut!

    Tout d'abord, merci d'avoir répondu

    Les accès disques n'ont je pense pas grand chose à voir dans l'histoire.
    Les 30 vignettes que je crée sont les sorties finales de mon algo; et je ne peux donc pas m'en passer.

    A mon avis, le probleme vient bien de l'instruction savefig : J'ai essayé d'effectuer le meme travail avec PIL et la creation est faite pour les 30 vignettes en moins de 1 seconde.

    Par contre les images que me sort la PIL sont moches au possible, les options CMYK et RGB rendent inutilisables les resultats.

    Je ne peux pas vous montrer de photos cette semaine car je ne peux rien uploader sur les pc au travail; et je men excuse.

    Le probleme reste donc entier.


    J'ai ce matin testé savefig tout a tour avec chacun des formats possibles, j'ai une différence de quasiment 10 sec sdelon les formats . Seul probleme, j'ai besoin du png opur affichage natif dans mon rapport html.


    Si quelqu'jun peut m'expliquer comment avoir les memes resultats avec la PIL qu'avec un bete imshow(A,cm.copper) de matplotlib, je pourrais peut etre egalement maffranchir de ce savefig qui m'embete.

    Je vous remercie d'avance!

  4. #4
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Je ne connais pas matplotlib et je ne peux te donner l'équivalent de la fonction, mais, dans PIL, pour extraire une vignette d'une image, utilise la méthode crop (pil-handbook pages 4, 16).

    Et, je suis très étonné que ton extraction modifie la qualité de tes vignettes (les extractions se font sur des zones de pixels entiers et il n'y a pas de rééchantillonnage) : si elles sont "moches" à l'arrivée, c'est que les zones correspondantes dans l'image de départ étaient, elles-aussi, "moches".

    Le bout de code "PIL" et, un exemple d'imagette, seraient les bienvenus pour y voir un peu plus clair

  5. #5
    Membre confirmé Avatar de airballman
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 256
    Par défaut
    Salut à tous,
    j'ai réussi à trouver des solutions à mes problèmes, en jouant avec les formats d'images.

    J'avais un tableau de float32, que j'ai typé en uint8. De cette facon, mes images sortent sans etre bruitées.

    Voilou, par contre, je n'ai pas trouvé de moyen de transformer mes images plus rapidement avec savefig


    C'est tou, pour le moment :p


    Julien

Discussions similaires

  1. lenteur au chargement une image stream en gdi
    Par andromeda dans le forum Langage
    Réponses: 1
    Dernier message: 10/04/2014, 10h46
  2. [WinForms]Lenteur d'affichage formulaire avec image de fond
    Par olixelle dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 06/09/2006, 14h06
  3. sauvergarder une image en asp
    Par Tikate dans le forum ASP
    Réponses: 2
    Dernier message: 02/05/2006, 12h23
  4. Changement d'opacité d'une image : lenteur FireFox
    Par Gladiator dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/10/2005, 22h16
  5. [swing][Buffered Image] memoire et lenteur sont les deux ...
    Par pierre.zelb dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 17/08/2005, 09h38

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