Je suis en train d'essayer d'extraire une image par seconde d'une vidéo, tout en ayant plusieurs vidéos dans un dossier. J'ai réussi à le faire pour une vidéo comme ceci, mais je pense que je me suis trompé dans ma boucle pour toutes les vidéos. Ci-dessous se trouve le code pour une vidéo qui fonctionne.
import cv2
pathOut = r"C:/Users/Me/Out/"
vidcap = cv2.VideoCapture(r'C:\Me\Desktop\test.mp4');
count = 0
success = True
while success:
success,image = vidcap.read()
print('read a new frame:',success)
if count%30 == 0 :
cv2.imwrite(pathOut + 'frame%d.jpg'%count,image)
count+=1
Avec la boucle pour toutes les vidéos que j'ai faite comme ceci.
import os
import cv2
pathOut = r"C:/Users/Me/Out/"
count = 0
success = True
counter = 1
listing = os.listdir(r'C:/Users/Me/videos/train')
for vid in listing:
vid = r"C:/Users/Me/videos/train/"+vid
cap = cv2.VideoCapture(vid)
count = 0
counter += 1
while success:
success,image = cap.read()
print('read a new frame:',success)
if count%30 == 0 :
cv2.imwrite(pathOut + 'frame%d.jpg'%count,image)
count+=1
Ma boucle de vidéo ne semble pas fonctionner car elle ne prend qu'une seule vidéo. Ensuite, elle affiche faux, probablement parce qu'il ne reste plus d'images, mais je ne sais pas comment passer à la vidéo suivante. Je pense que j'ai besoin de faire quelques ajustements mineurs, est-ce que quelqu'un a une idée de ce que c'est exactement ?