Extracción de fotogramas de películas con Matplotlib

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este tutorial lo guiará a través del proceso de usar Matplotlib para capturar marcos individuales de una película y escribirlos en un archivo. Este método es útil para generar animaciones y se puede hacer sin la integración del bucle de eventos.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar las bibliotecas necesarias

En primer lugar, necesitamos importar las bibliotecas necesarias para generar la animación. Usaremos numpy para generar números aleatorios, matplotlib para trazar gráficos y FFMpegWriter para escribir los marcos en un archivo.

import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
from matplotlib.animation import FFMpegWriter

Configurar el escritor

Necesitamos configurar el escritor que se utilizará para escribir los marcos en un archivo. Establecemos los fotogramas por segundo (fps) y agregamos metadatos como el título, el artista y el comentario.

metadata = dict(title='Movie Test', artist='Matplotlib',
                comment='Movie support!')
writer = FFMpegWriter(fps=15, metadata=metadata)

Configurar la figura

Creamos una figura y establecemos los límites de los ejes x e y para la gráfica.

fig = plt.figure()
plt.xlim(-5, 5)
plt.ylim(-5, 5)

Configurar la gráfica

Creamos una gráfica de línea y establecemos los datos iniciales como una matriz vacía.

l, = plt.plot([], [], 'k-o')

Capturar marcos y escribir en un archivo

Recorremos 100 iteraciones y generamos números aleatorios para las coordenadas x e y. Actualizamos los datos de la gráfica de línea y capturamos el marco usando el escritor. Finalmente, guardamos los marcos en un archivo.

x0, y0 = 0, 0

with writer.saving(fig, "writer_test.mp4", 100):
    for i in range(100):
        x0 += 0.1 * np.random.randn()
        y0 += 0.1 * np.random.randn()
        l.set_data(x0, y0)
        writer.grab_frame()

Resumen

Este tutorial te mostró cómo usar Matplotlib para capturar marcos de una película y escribirlos en un archivo. Cubrimos los pasos necesarios desde la configuración del escritor hasta el bucle a través de las iteraciones y la generación de números aleatorios para la gráfica. Este método es útil para generar animaciones sin la integración del bucle de eventos.