0% ont trouvé ce document utile (0 vote)
72 vues3 pages

Note 6-M31 (Code)

Le document présente des exemples de code en Python utilisant OpenCV pour le traitement vidéo. Il couvre la lecture et le traitement de vidéos, l'utilisation de la caméra pour capturer et enregistrer des vidéos, ainsi que le suivi d'objets à l'aide du flot optique. Chaque section inclut des fonctionnalités spécifiques comme la conversion en niveaux de gris, la détection de contours et le suivi de points d'intérêt.

Transféré par

Anass ibn tahaikt
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
72 vues3 pages

Note 6-M31 (Code)

Le document présente des exemples de code en Python utilisant OpenCV pour le traitement vidéo. Il couvre la lecture et le traitement de vidéos, l'utilisation de la caméra pour capturer et enregistrer des vidéos, ainsi que le suivi d'objets à l'aide du flot optique. Chaque section inclut des fonctionnalités spécifiques comme la conversion en niveaux de gris, la détection de contours et le suivi de points d'intérêt.

Transféré par

Anass ibn tahaikt
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MST MBD/SIM 2023-2024 Labs OpenCV-Python : 6 M.

AIT KBIR

# ----------------- Lecture et traitement d’une vidéo -----------------------------------------------

import cv2

def main():
cap = cv2.VideoCapture('../videos/f1.mp4')

if cap.isOpened():
print("Nombre de frames : ", cap.get(cv2.CAP_PROP_FRAME_COUNT))
print("Nombre des frames par seconde : ", cap.get(cv2.CAP_PROP_FPS))
print("Hauteur des frames : ", cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print("Largeur des frames : ", cap.get(cv2.CAP_PROP_FRAME_WIDTH))
print("Durée de la vidéo : ",
int(cap.get(cv2.CAP_PROP_FRAME_COUNT)/cap.get(cv2.CAP_PROP_FPS))," (s)")

else:
print("Erreur d'ouverture")

ret = True
while ret:

ret, frame = cap.read()

if not ret :
break
cv2.imshow("Capture de la camera ", frame)
output = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow("GRIS", output)

# Binariser
output=cv2.Canny(output, 200, 300)
cv2.imshow("CONTOURS", output)

if cv2.waitKey(int(50/cap.get(cv2.CAP_PROP_FPS))) == 27:
break

cv2.destroyAllWindows()
cap.release()

if __name__ == "__main__":
main()

1 FST de Tanger
MST MBD/SIM 2023-2024 Labs OpenCV-Python : 6 M. AIT KBIR

# -------------------- Caméra : lecture et traitement --------------------------------

import cv2

def main():

cap = cv2.VideoCapture(0)

# Fichier de sauvegarde
codec = cv2.VideoWriter_fourcc('W', 'M', 'V', '2')
framerate = 25
resolution = (640, 480)

VideoFileOutput = cv2.VideoWriter('../videos/Output.avi', codec, framerate, resolution)

if cap.isOpened():
ret, frame = cap.read()
else:
ret = False

# Lire une frame chaque 50 ms


while ret:

ret, frame = cap.read()

cv2.imshow("Camera", frame)
gris = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow("Gris", gris)
cnt = cv2.Canny(gris, 200, 240)
cv2.imshow("Contours", cnt)

VideoFileOutput.write(frame)

if cv2.waitKey(40) == 27:
break

cv2.destroyAllWindows()
VideoFileOutput.release()
cap.release()

if __name__ == "__main__":
main()

2 FST de Tanger
MST MBD/SIM 2023-2024 Labs OpenCV-Python : 6 M. AIT KBIR

# --------------------------------- flot optique : suivi des objets ---------------------------

import cv2

cap = cv2.VideoCapture('../videos/f2.mp4')

# Points d'intérêts à suivre


ret, frame = cap.read()
gris1 = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

while(1):
# Parametres : Points d'intérêt
p0 = cv2.goodFeaturesToTrack(gris1, mask = None,
maxCorners=100,qualityLevel=0.3,minDistance=7,blockSize=7)
ret,frame = cap.read(); gris2 = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# Calcul du flot optique (lucas et Kanade)


p1, st, err = cv2.calcOpticalFlowPyrLK(gris1, gris2, p0, None, winSize=(15,
15),maxLevel=2,criteria=(cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03))

# Points détectées
p1ok = p1[st==1]; p0ok = p0[st==1]

# Affichage
for i in range(len(p1ok)):
p0c = (p0ok[i][0], p0ok[i][1])
# point de départ + direction
vd = (int(p0ok[i][0]+5*(p1ok[i][0]-p0ok[i][0])),int(p0ok[i][1]+5*(p1ok[i][1]-p0ok[i][1])))
frame = cv2.line(frame,p0c,vd, (0,0,255), 2)
frame = cv2.circle(frame,(p0ok[i][0],p0ok[i][1]),2,(0,255,0),-1)

cv2.imshow('frame',frame)
k = cv2.waitKey(30) & 0xff
if k == 27:
break

# Préparer pour l'itération suivante


gris1 = gris2.copy();

cv2.destroyAllWindows()
cap.release()

3 FST de Tanger

Vous aimerez peut-être aussi