Bonjour bonjour,
Voilà l'histoire : je suis en cours de finalisation d'un prog Python, et j'essaie entre autres de gagner du temps sur l'exécution.
Or une fonction particulière de mon programme prend beaucoup de temps, et j'ose suputer qu'il existe un moyen détourné plus rapide d'arriver à mes fins!
Voilà la bête :
Comme c'est écrit, le but de la fonction est de mettre à l'échelle une image. La fonction s'applique à une ligne de 15000, 20000, 40000 pixels, le pas de moyennage est en général de 30, et l'image compte 800 lignes... ce qui donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 import numarray as n def miseEchelle(entree, long, moy):sortie = list() for i in range(0, long, moy): sortie.append ( n.average ( entree[i:i + moy - 1] ) ) return n.array(sortie, 'Float32')
Tout est simplifié bien sûr. La boucle prend chez moi environ 100 s (j'utilise déjà psyco, et oui l'ordi est vieux!! ) et a priori à cause de average.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for i in range(800): # lecture d'une ligne ligne_moy = miseEchelle(ligne, 20000, 30) # ecriture de ligne_moy
Bon... quelqu'un est inspiré?
Partager