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 !
Python/Timelapse
Modérateurs : Francois, Manfraid
Re: Python/Timelapse
Salut.
Je viens de lire vite fait la doc. Que veux tu faire et quel sont le parametre que tu veux pour ton timelapse
Et concernant tes boucles c'est normal. Tu devrai plutôt faire une seule boucle avec un comparateur dedans et dès que le temps est fini tu sort de la boucle
Je viens de lire vite fait la doc. Que veux tu faire et quel sont le parametre que tu veux pour ton timelapse
Et concernant tes boucles c'est normal. Tu devrai plutôt faire une seule boucle avec un comparateur dedans et dès que le temps est fini tu sort de la boucle
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
-
- Messages : 3
- Enregistré le : ven. 19 févr. 2016 10:55
Re: Python/Timelapse
Merci pour ta réponse.
Voici le code que j'utilise et qui fonctionne :
Je souhaite en plus le limiter dans le temps (et l'interrompre après x secondes par exemple).
Sur un autre forum, on me conseille de faire :
- une boucle infinie avec "while True:"
- une condition de sortie avec un "if" qui déclenche un "break"
Donc à ce stade je vais explorer cette solution.
Si je galère trop je passerais à raspistill mais avant cela je voulais comprendre la logique "python".
Voici le code que j'utilise et qui fonctionne :
Code : Tout sélectionner
import picamera
with picamera.PiCamera() as camera:
camera.start_preview()
time.sleep(2)
camera.rotation = (180)
camera.resolution = (2592, 1458)
for filename in camera.capture_continuous('img{counter:04d}.jpg'):
print('Captured %s' % filename)
time.sleep(1)
Sur un autre forum, on me conseille de faire :
- une boucle infinie avec "while True:"
- une condition de sortie avec un "if" qui déclenche un "break"
Donc à ce stade je vais explorer cette solution.
Si je galère trop je passerais à raspistill mais avant cela je voulais comprendre la logique "python".
Re: Python/Timelapse
Salut,
oki je comprends
voici un exemple de ce que tu pourrais faire
oki je comprends
voici un exemple de ce que tu pourrais faire
Code : Tout sélectionner
import time
import picamera
start = time.time()
stop = start + 60
with picamera.PiCamera() as camera:
camera.start_preview()
time.sleep(2)
camera.rotation = (180)
camera.resolution = (2592, 1458)
for filename in camera.capture_continuous('img{counter:04d}.jpg'):
print('Captured %s' % filename)
if time.time() >= stop:
break
time.sleep(1)
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
-
- Messages : 3
- Enregistré le : ven. 19 févr. 2016 10:55
Re: Python/Timelapse
Bonjour,
Merci beaucoup pour ton retour, je vais regarder ça.
J'avais posé la question sur un autre forum de dev en parallèle et je partage le retour que j'ai eu (si ça peut aider quelqu'un qui passera par là). C'est une solution qui stoppe la boucle après x prises de vue mais comme on détermine le temps entre chacune de ces prises, cela revient finalement au même (et je plaide coupable au final cela vient de la doc picamera mais j'étais resté bloqué sur mon while/for) :
Merci encore !
Merci beaucoup pour ton retour, je vais regarder ça.
J'avais posé la question sur un autre forum de dev en parallèle et je partage le retour que j'ai eu (si ça peut aider quelqu'un qui passera par là). C'est une solution qui stoppe la boucle après x prises de vue mais comme on détermine le temps entre chacune de ces prises, cela revient finalement au même (et je plaide coupable au final cela vient de la doc picamera mais j'étais resté bloqué sur mon while/for) :
Code : Tout sélectionner
import time
import picamera
with picamera.PiCamera() as camera:
camera.start_preview()
try:
for i, filename in enumerate(camera.capture_continuous('image{counter:02d}.jpg')):
print(filename)
time.sleep(1)
if i == 59:
break
finally:
camera.stop_preview()