Python/Timelapse
Posté : ven. 19 févr. 2016 11:10
Bonjour à tous,
Dans le cadre d'un projet de type "timelapse" j'essaye de passer par un code python mais sans succès pour le moment (je suis plutôt novice).
Je passe par Picamera (à l'aide des conseil dispos à cette adresse : http://picamera.readthedocs.org/en/rele ... ipes1.html).
Le but est d'utiliser une boucle infinie (for filename in camera.capture_continuous('img{counter:03d}.jpg'):) mais de la limiter dans le temps.
Pour cela j'ai trouvé une solution avec time et un while de type : a=(time.time()) / b=(time.time()+3) / while a<b: a=(time.time()) afin d'interrompre la boucle au bout de 3 secondes (pour mon exemple).
Le problème est que je n'arrive pas à imbriquer les 2 boucles et soit j'exécute le while pendant 3 secondes puis le for à l'infini, soit l'inverse (en fait que le for).
A titre d'exemple, la possibilité suivante ne prend pas du tout en compte les 3 secondes (j'ai échangé le morceau de code Picamera par une boucle "longue" à interrompre afin de tester ça au travail) :
import time
a=(time.time())
b=(time.time())+3
while a<b:
for c in range(100000000000000000000):
print(c)
a=(time.time())
Je sais que je pourrais m'en sortir plus facilement avec raspistill mais j'aimerais au moins comprendre mon erreur. Merci par avance pour votre aide !
Dans le cadre d'un projet de type "timelapse" j'essaye de passer par un code python mais sans succès pour le moment (je suis plutôt novice).
Je passe par Picamera (à l'aide des conseil dispos à cette adresse : http://picamera.readthedocs.org/en/rele ... ipes1.html).
Le but est d'utiliser une boucle infinie (for filename in camera.capture_continuous('img{counter:03d}.jpg'):) mais de la limiter dans le temps.
Pour cela j'ai trouvé une solution avec time et un while de type : a=(time.time()) / b=(time.time()+3) / while a<b: a=(time.time()) afin d'interrompre la boucle au bout de 3 secondes (pour mon exemple).
Le problème est que je n'arrive pas à imbriquer les 2 boucles et soit j'exécute le while pendant 3 secondes puis le for à l'infini, soit l'inverse (en fait que le for).
A titre d'exemple, la possibilité suivante ne prend pas du tout en compte les 3 secondes (j'ai échangé le morceau de code Picamera par une boucle "longue" à interrompre afin de tester ça au travail) :
import time
a=(time.time())
b=(time.time())+3
while a<b:
for c in range(100000000000000000000):
print(c)
a=(time.time())
Je sais que je pourrais m'en sortir plus facilement avec raspistill mais j'aimerais au moins comprendre mon erreur. Merci par avance pour votre aide !