MST MBD/SIM 2023-2024 Labs OpenCV-Python : 6 M.
AIT KBIR
# ----------------- Lecture et traitement d’une vidéo -----------------------------------------------
import cv2
def main():
cap = [Link]('../videos/f1.mp4')
if [Link]():
print("Nombre de frames : ", [Link](cv2.CAP_PROP_FRAME_COUNT))
print("Nombre des frames par seconde : ", [Link](cv2.CAP_PROP_FPS))
print("Hauteur des frames : ", [Link](cv2.CAP_PROP_FRAME_HEIGHT))
print("Largeur des frames : ", [Link](cv2.CAP_PROP_FRAME_WIDTH))
print("Durée de la vidéo : ",
int([Link](cv2.CAP_PROP_FRAME_COUNT)/[Link](cv2.CAP_PROP_FPS))," (s)")
else:
print("Erreur d'ouverture")
ret = True
while ret:
ret, frame = [Link]()
if not ret :
break
[Link]("Capture de la camera ", frame)
output = [Link](frame, cv2.COLOR_BGR2GRAY)
[Link]("GRIS", output)
# Binariser
output=[Link](output, 200, 300)
[Link]("CONTOURS", output)
if [Link](int(50/[Link](cv2.CAP_PROP_FPS))) == 27:
break
[Link]()
[Link]()
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 = [Link](0)
# Fichier de sauvegarde
codec = cv2.VideoWriter_fourcc('W', 'M', 'V', '2')
framerate = 25
resolution = (640, 480)
VideoFileOutput = [Link]('../videos/[Link]', codec, framerate, resolution)
if [Link]():
ret, frame = [Link]()
else:
ret = False
# Lire une frame chaque 50 ms
while ret:
ret, frame = [Link]()
[Link]("Camera", frame)
gris = [Link](frame, cv2.COLOR_BGR2GRAY)
[Link]("Gris", gris)
cnt = [Link](gris, 200, 240)
[Link]("Contours", cnt)
[Link](frame)
if [Link](40) == 27:
break
[Link]()
[Link]()
[Link]()
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 = [Link]('../videos/f2.mp4')
# Points d'intérêts à suivre
ret, frame = [Link]()
gris1 = [Link](frame, cv2.COLOR_BGR2GRAY)
while(1):
# Parametres : Points d'intérêt
p0 = [Link](gris1, mask = None,
maxCorners=100,qualityLevel=0.3,minDistance=7,blockSize=7)
ret,frame = [Link](); gris2 = [Link](frame, cv2.COLOR_BGR2GRAY)
# Calcul du flot optique (lucas et Kanade)
p1, st, err = [Link](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 = [Link](frame,p0c,vd, (0,0,255), 2)
frame = [Link](frame,(p0ok[i][0],p0ok[i][1]),2,(0,255,0),-1)
[Link]('frame',frame)
k = [Link](30) & 0xff
if k == 27:
break
# Préparer pour l'itération suivante
gris1 = [Link]();
[Link]()
[Link]()
3 FST de Tanger