[débutant] Opencv time => vidéomaton
Bonjour,
J'ai un projet, qui me semblait vraiment simple et pour lequel j'ai commencé a apprendre python il y a quelques temps.
Le projet est de creer une interface très simple, 1 bouton, qui enregistre pendant X secondes le flux vidéo d'une webcam, pendant l'enregistrement un compteur de temps défile.
Après avoir engranger les bases de python je me suis lancé et j'ai pris un mur direct :aie:
j'ai lutté une bonne 20aine d'heure juste pour installer opencv et les bibliothèques nécessaires, puis j'ai enfin commencé a chercher un peu tout ce que je trouvais sur openCV.
La doc est fournie, mais tellement fouillis... entre C++ et Python, tout est mélangé, ca change selon les version d'opencv, les versions de python, bref, c'est un beau bor$*ù$
voici les 2 codes que j'ai pu créer:
tout d'abord le compteur de temps, simple et je l'espère efficace :) en tout cas, ca fonctionne, a essayer avec tkinter, mais je ne me suis pas encore penché sur ce dernier.
Code:
1 2 3 4 5 6
| >>> import time
>>> i=10
>>> while i>0:
print(i)
i=i-1
time.sleep(1) |
en suite, la récupération du flux vidéo. la ca ne semble pas fonctionner, python tourne pendant les x secondes paramétrées, mais aucun flux vidéo ne semble être enregistré, je ne sais d'ailleurs pas ou le chercher, je n'ai rien trouvé dans la doc pour préciser un chemin :D
Je me suis inspiré de morceaux de script trouvés sur google/dans la docs, ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| import time
import numpy as np
import cv2
Duree=45
format_video=cv2.VideoWriter_fourcc(*'XVID')
nom_video="video1"
def clean(capture, video):
capture.release()
video.release()
if __name__ == "__main__":
capture=cv2.VideoCapture(0)
video=cv2.VideoWriter(nom_video, format_video, 20, (640,480))
temps_depart=int(time.time())
temps_actu=0
try:
while(capture.isOpened() and temps_actu < Duree):
ret, frame = capture.read()
if ret == True:
video.write(frame)
else:
break
temps_actu=int(time.time())-temps_depart
except KeyboardInterrupt:
clean(capture, video)
clean(capture, video) |
Sauriez vous m'aider? je cherche a comprendre, et vu mon niveau :mrgreen:
Merci par avance,
El castor!