Matplotlib-Film-Bildextraktion

PythonPythonBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Tutorial wird Ihnen der Prozess des Verwenden von Matplotlib zum Extrahieren einzelner Bilder aus einem Film und zum Schreiben dieser in eine Datei beschrieben. Diese Methode eignet sich zur Erstellung von Animationen und kann ohne Integration einer Ereignisschleife durchgeführt werden.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Importieren der erforderlichen Bibliotheken

Wir müssen zunächst die erforderlichen Bibliotheken für die Erstellung der Animation importieren. Wir werden numpy verwenden, um Zufallszahlen zu generieren, matplotlib für die Darstellung und FFMpegWriter für das Schreiben der Bilder in eine Datei.

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

Konfigurieren des Schreibers

Wir müssen den Schreiber konfigurieren, der verwendet werden soll, um die Bilder in eine Datei zu schreiben. Wir legen die Bilder pro Sekunde (fps) fest und fügen Metadaten wie Titel, Künstler und Kommentar hinzu.

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

Erstellen der Figur

Wir erstellen eine Figur und legen die Grenzen für die x- und y-Achse fest.

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

Einrichten der Darstellung

Wir erstellen einen Linienplot und legen die Anfangsdaten als leeres Array fest.

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

Bilder aufnehmen und in eine Datei schreiben

Wir durchlaufen 100 Iterationen und generieren Zufallszahlen für die x- und y-Koordinaten. Wir aktualisieren die Daten für den Linienplot und nehmen das Bild mit dem Schreiber auf. Schließlich speichern wir die Bilder in eine Datei.

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()

Zusammenfassung

In diesem Tutorial haben wir Ihnen gezeigt, wie Sie Matplotlib verwenden, um Bilder aus einem Film aufzunehmen und in eine Datei zu schreiben. Wir haben die notwendigen Schritte von der Einrichtung des Schreibers bis hin zum Durchlaufen von Iterationen und Generieren von Zufallszahlen für die Darstellung abgedeckt. Diese Methode eignet sich zur Erzeugung von Animationen ohne Integration einer Ereignisschleife.