En este artículo, describiremos cómo puede capturar cada cuadro del video y también cambiar su tamaño según sus necesidades. Lo que haremos exactamente es tomar el video como entrada del usuario y capturarlo cuadro por cuadro. Además, ejecutamos el video en bucle y guardamos los cuadros de imagen con ciertos nombres después de cambiar el tamaño de esos cuadros.
Implementación paso a paso:
Paso 1: Importación de las bibliotecas
Aquí, estamos importando la biblioteca cv2, cv2 es el paquete OpenCV que nos ayuda a llamar a las funciones imread(), startWindowThread(), namedWindow() e imshow() respectivamente.
import cv2
Paso 2: Definir un objeto de captura de video
En este paso, usaremos la función VideoCapture() para obtener un objeto de captura de video para la cámara. Aquí, puede usar su cámara o cargar directamente el video desde su sistema.
vidcap = cv2.VideoCapture(“#Definir la ruta del video”)
Paso 3: captura video cuadro por cuadro
Ahora, capturaremos la duración del video para ejecutar el ciclo. Además, el video se cierra automáticamente una vez que se han capturado todos los cuadros.
success,image = vidcap.read()
Paso 4: Declarar la variable
Luego, declare la variable y cuente con el valor 0. Esta variable se incrementará aún más mientras se ejecuta el bucle.
count = 0
Paso 5: crear un bucle para ejecutar el video
Además, creamos un ciclo while para ejecutar el video y guardar todos los cuadros de su video en su sistema local.
while success:
Paso 5.1: Capturar video cuadro por cuadro
A continuación, leeremos el video cuadro por cuadro para cambiar el tamaño de los cuadros y guardarlos en su computadora local.
success,image = vidcap.read()
Paso 5.2: Cambiar el tamaño de los marcos de imagen
En este paso, hemos utilizado la función resize() con dimensiones particulares para las que se deben configurar los marcos de la imagen.
resize = cv2.resize(image, (#dimensiones del eje x, #dimensiones del eje y))
Paso 5.3: Guardando los marcos con ciertos nombres
Más tarde, guardamos los marcos de imagen que redimensionamos en el último paso. Además, le damos a los marcos ciertos nombres con las extensiones.
cv2.imwrite(“%04d.jpg” % recuento, cambio de tamaño)
Paso 5.4: Cerrar el video automáticamente una vez que termina
Además, la función waitKey() se usa para cerrar el video automáticamente una vez que termina.
if cv2.waitKey(10) == 27: break
Paso 5.5 Incrementando la variable en 1
Finalmente, incrementamos el valor de la variable declarada, cuenta en 1.
count += 1
Ejemplo:
En este ejemplo, hemos utilizado el video ( enlace ) del cual extraeremos ciertos cuadros, cambiaremos el tamaño de esos cuadros y los guardaremos con los nombres particulares en la computadora local.
Python3
# Python program to resize frame's # from video with aspect ratio # Import the libraries import cv2 # Define a video capture object vidcap = cv2.VideoCapture("gfg_video.mp4") # Capture video frame by frame success, image = vidcap.read() # Declare the variable with value 0 count = 0 # Creating a loop for running the video # and saving all the frames while success: # Capture video frame by frame success, image = vidcap.read() # Resize the image frames resize = cv2.resize(image, (700, 500)) # Saving the frames with certain names cv2.imwrite("%04d.jpg" % count, resize) # Closing the video by Escape button if cv2.waitKey(10) == 27: break # Incrementing the variable value by 1 count += 1
Producción: