Solución:
Puede utilizar el método “obtener” de su objeto de captura como se muestra a continuación:
capture.get(CV_CAP_PROP_POS_FRAMES); // retrieves the current frame number
y también :
capture.get(CV_CAP_PROP_FRAME_COUNT); // returns the number of total frames
Por cierto, estos métodos devuelven un valor doble.
También puede usar el método cvGetCaptureProperty (si usa la antigua interfaz C).
cvGetCaptureProperty (CvCapture * captura, int id_propiedad);
Las opciones de property_id se encuentran a continuación con las definiciones:
CV_CAP_PROP_POS_MSEC 0
CV_CAP_PROP_POS_FRAME 1
CV_CAP_PROP_POS_AVI_RATIO 2
CV_CAP_PROP_FRAME_WIDTH 3
CV_CAP_PROP_FRAME_HEIGHT 4
CV_CAP_PROP_FPS 5
CV_CAP_PROP_FOURCC 6
CV_CAP_PROP_FRAME_COUNT 7
- POS_MSEC es la posición actual en un archivo de video, medida en milisegundos.
- POS_FRAME es la posición del fotograma actual en el video (como el 55º fotograma del video).
- POS_AVI_RATIO es la posición actual dada como un número entre 0 y 1 (esto en realidad es bastante útil cuando desea colocar una barra de seguimiento para permitir que la gente navegue por su video).
- FRAME_WIDTH y FRAME_HEIGHT son las dimensiones de los fotogramas individuales del video que se van a leer (o capturar con la configuración actual de la cámara).
- FPS es específico para archivos de video e indica el número de cuadros por segundo en el que se capturó el video. Necesitará saber esto si desea reproducir su video y que salga a la velocidad correcta.
- FOURCC es el código de cuatro caracteres para el códec de compresión que se utilizará para el video que está leyendo actualmente.
- FRAME_COUNT debe ser el número total de fotogramas en el video, pero esta cifra no es del todo confiable.
(del libro Learning OpenCV)
En la versión 3.4 de openCV, el indicador correcto es:
cap.get(cv2.CAP_PROP_POS_FRAMES)
La forma de hacerlo en OpenCV python es así:
import cv2
cam = cv2.VideoCapture(<filename>);
print cam.get(cv2.cv.CV_CAP_PROP_POS_FRAMES)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)