Lecture d'un flux vidéo à partir d'une webcam
Méthode :
Le programme pour lire une webcam branchée sur un port USB
1
import numpy as np
2
import cv2 as cv
3
cap = cv.VideoCapture(0)
4
while(True):
5
# Capture image par imaghe
6
ret, img = cap.read()
7
# Préparation de l'affichage de l'image
8
cv.imshow('frame',img)
9
# affichage et saisie d'un code clavier
10
if cv.waitKey(1) & 0xFF == ord('q'):
11
break
12
# Ne pas oublier de fermer le flux et la fenetre
13
cap.release()
14
cv.destroyAllWindows()
Méthode : Changement de la taille
Pour changer la taille on utilise la méthode set, après avoir ouvert le flux video
1
cap.set(cv.CAP_PROP_FRAME_WIDTH,1280)
2
cap.set(cv.CAP_PROP_FRAME_HEIGHT,960)
3
Méthode : Lecture d'une webcam et enregistrement d'une vidéo
Le programme lit une image de la webcam et écrit cette image dans le fichier video AVI. Le codec utilisé est MJPG
1
import numpy as np
2
import cv2 as cv
3
webcam = cv.VideoCapture(0)
4
fourcc = cv.VideoWriter_fourcc(*'MJPG')
5
fichier = cv.VideoWriter('c:/temp/test.avi',fourcc,20,(640,480))
6
while(True):
7
# Capture image par image
8
ret, img = webcam.read()
9
if ret==True:
10
fichier.write(img)
11
# Preparation de l'affichage de l'image
12
cv.imshow('Ma Webcam',img)
13
# affichage et saisie d'un code clavier
14
if cv.waitKey(1) & 0xFF == ord('q'):
15
break
16
else:
17
break
18
# Ne pas oublier de fermer le flux et la fenetre
19
webcam.release()
20
fichier.release()
21
cv.destroyAllWindows()
Méthode : Lecture d'un fichier video
La lecture d'un fichier video ou du flux d'une webcam fonctionne sur le même principe. La différence est dans l'origine : pour un fichier il faut donner le nom !
1
import numpy as np
2
import cv2 as cv
3
fichier = cv.VideoCapture('c:/temp/test.avi')
4
while(True):
5
# Capture image par image
6
ret, img = fichier.read()
7
if ret==True:
8
# Preparation de l'affichage de l'image
9
cv.imshow('Mon fichier',img)
10
# affichage et saisie d'un code clavier
11
if cv.waitKey(1) & 0xFF == ord('q'):
12
break
13
else:
14
break
15
# Ne pas oublier de fermer le flux et la fenetre
16
fichier.release()
17
cv.destroyAllWindows()