Moim zadaniem jest stworzenie narzędzia, które może zająć wideo i czas w ciągu kilku sekund.Wyodrębnianie obrazu z wideo w danym czasie za pomocą OpenCV
Narzędzie powinno wypisać obrazy jpeg z wideo z podanymi danymi wejściowymi.
E.g. niech nazwa wideo będzie abc.mpeg
, a czas zostanie dostarczony do narzędzia jako 20
sekund. Narzędzie powinno wypisać obraz z wideo @ 20 sekund.
# Import the necessary packages
import argparse
import cv2
vidcap = cv2.VideoCapture('Wildlife.mp4')
success,image = vidcap.read()
count = 0;
while success:
success,image = vidcap.read()
cv2.imwrite("frame%d.jpg" % count, image) # save frame as JPEG file
if cv2.waitKey(10) == 27: # exit if Escape is hit
break
count += 1
Powyższy kod daje wszystkie ramki z całego filmu, moim problemem jest to, w jaki sposób można przekazać czas i dostać ramkę w określonym czasie?
w C++ zrobiłbyś 'vidcap.set (CV_CAP_PROP_POS_MSEC, 20000);' aby ustawić przechwytywanie na pozycję 20 sekund = 20000 milisekund. W python prawdopodobnie będzie wyglądał bardzo podobnie. Możesz użyć 'vidcap.get (CV_CAP_PROP_POS_MSEC)', aby zapytać o aktualną pozycję, jeśli chcesz zatrzymać się po pewnym określonym czasie. – Micka