¿Cómo convertir un video en una matriz numpy?

Tengo una secuencia de comandos de python en la misma carpeta que un video que quiero convertir a una matriz numpy. Mi video se llama ‘test.mp4’.

Dentro de mi script, quiero llamar a someFunction('test.mp4') y recuperar una matriz numpy. La matriz numpy resultante debe ser una matriz numpy de imágenes, donde cada imagen es una matriz numpy 3-d.

¿Tiene sentido?

¡Gracias!

El siguiente script hace lo que usted quiere. Puedes separar parte de ella en la función.

El código a continuación no comprueba errores, en particular, el código de producción verificará que cada frame* variable sea mayor que cero.

 import cv2 import numpy as np cap = cv2.VideoCapture('test.mp4') frameCount = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) frameWidth = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) frameHeight = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) buf = np.empty((frameCount, frameHeight, frameWidth, 3), np.dtype('uint8')) fc = 0 ret = True while (fc < frameCount and ret): ret, buf[fc] = cap.read() fc += 1 cap.release() cv2.namedWindow('frame 10') cv2.imshow('frame 10', buf[9]) cv2.waitKey(0) 

skvideo es un paquete de Python que se puede usar para leer videos y almacenarlos en una matriz multidimensional.

 import skvideo.io videodata = skvideo.io.vread("video_file_name") print(videodata.shape) 

Para más detalles: http://mllearners.blogspot.in/2018/01/scikit-video-skvideo-tutorial-for.html