[PYTHON] So schleifen und spielen Sie ein GIF-Video mit openCV ab

Background Derzeit erstelle ich eine Webseite, auf der kleinere OpenCV-Versionen selbst vorgestellt werden. https://featurepoints.jp/opencv_doc/

Also konvertiere ich GIF von GIFMAGAZIN in MP4 als Datensatz und führe eine Bildverarbeitung durch, aber es ist "cv2.imshow" ("Fenstername" " Wenn ich versuche, ein Video mit mat) `abzuspielen, wird es wie die Browseranzeige wiederholt und endet in kurzer Zeit, ohne dass es wiederholt angezeigt wird.

Hier werde ich schreiben, wie man die Videowiedergabe mit cv2.imshow () wiederholt.

gif to mp4 Es gibt zwei Möglichkeiten, von gif nach mp4 zu konvertieren. Eine besteht darin, das GIF im Browser anzuzeigen, mit der rechten Maustaste zu klicken und "Als Video speichern unter" auszuwählen, um es zu konvertieren. Die andere ist die Konvertierung mit ffmpeg. (Siehe Konvertieren von GIF-Animationen in MP4 mit FFmpeg)

ffmpeg -i [GIF-Dateipfad]  -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" [mp4 Dateipfad] 

Method So zeigen Sie wiederholt an

  1. Spielen Sie das Video einmal ab und speichern Sie alle Bilder in einem Array
  2. Spielen Sie das Video in einer Endlosschleife ab
  3. Legen Sie die Beendigungsbedingungen während der Verarbeitung fest Du kannst es schaffen.

Development

Das Video endet mit [ESC], Sie können das Bild jedoch speichern, indem Sie [S] drücken.

import numpy as np
import cv2
import argparse

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--src')
    args = parser.parse_args()

    cap = cv2.VideoCapture(args.src)
    fps = cap.get(cv2.CAP_PROP_FPS)
    frames = []

    #Spielen Sie das Video einmal ab und speichern Sie die Bilder in einem Array
    while cap.isOpened():
        _ret, frame = cap.read()        
        if frame is None:
            break
        frames.append(frame)
    cap.release()

    end = False
    while True:
        if end:
            break
        for frame in frames:
            cv2.imshow("loop a gif",frame)

            k = cv2.waitKey(int(fps)) & 0xFF

            #Beenden Sie mit ESC
            if k == 27:
                end = True
                break
            #Bild speichern mit S.
            elif k == ord("s"):
                cv2.imwrite("output.png ", frame)

if __name__ == '__main__':
    main()

Consequence

output.gif

Afterword Die Video- (Bild-) Daten sind [Stop Sento-kun! Ich habe versucht, [GIF-Spiel] zu verwenden (https://gifmagazine.net/post_images/4264354?locale=ja). Wenn Sie die S-Taste zum richtigen Zeitpunkt drücken, wird das als "schön" angezeigte Bild gespeichert. Es ist ziemlich schwer zu verstehen. Schöne Zeit: Kuchen:

Recommended Posts

So schleifen und spielen Sie ein GIF-Video mit openCV ab
Loop-Video-Laden mit opencv
[How to!] Lerne und spiele Super Mario mit Tensorflow !!
[Python] Wie man mit Klassenvariablen mit Dekorator und Metaklasse spielt
Konvertieren Sie Videos mit ffmpeg + python + opencv in Schwarzweiß
Fraktal zum Erstellen und Spielen mit Python
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
Versuchen Sie, den Hintergrund und das sich bewegende Objekt des Videos mit OpenCV zu trennen
[REAPER] Wie man Reascript mit Python spielt
So beschneiden Sie ein Bild mit Python + OpenCV
[Python] Umgang mit japanischen Zeichen mit openCV
Freigeben von Ordnern für Docker und Windows mit Tensorflow
So extrahieren Sie Nullwerte und Nicht-Nullwerte mit Pandas
So nehmen Sie ein aufgenommenes Bild aus einem Video auf (OpenCV)
So erhalten Sie RGB- und HSV-Histogramme mit OpenCV
Wie aktualisiere ich mit SQLAlchemy?
Wie man mit Theano besetzt
Wie mit SQLAlchemy ändern?
So trennen Sie Zeichenfolgen mit ','
Wie man RDP auf Fedora31 macht
Wie lösche ich mit SQLAlchemy?
Fügen Sie Videos mit OpenCV + Python einen gefälschten Tilt-Shift-Effekt hinzu
[Lass uns mit Python spielen] Bildverarbeitung zu Monochrom und Punkten
So erstellen Sie einen Datenrahmen und spielen mit Elementen mit Pandas
So melden Sie sich mit Python bei AtCoder an und senden automatisch
Leuchtendes Leben mit Python und OpenCV
Python: So verwenden Sie Async mit
Neuronales Netzwerk mit OpenCV 3 und Python 3
So installieren und verwenden Sie Tesseract-OCR
Spielen Sie mit Poancare-Serien und SymPy
So importieren Sie CSV- und TSV-Dateien mit Python in SQLite
So verwenden Sie virtualenv mit PowerShell
So installieren Sie Python-Pip mit Ubuntu20.04LTS
Umgang mit Fehlern bei der Installation von Whitenoise und der Bereitstellung auf Heroku
Umgang mit unausgeglichenen Daten
So installieren Sie OpenCV auf einem Mac
So führen Sie Jupyter und Spark auf einem Mac mit minimalen Einstellungen aus
Wie fange ich mit Scrapy an?
Erste Schritte mit Python
Erstellen Sie einen Videoplayer mit PySimpleGUI + OpenCV 2 Fügen Sie die ROI-Einstellung hinzu und speichern Sie die Funktion (DIVX, MJPG, GIF).
Umgang mit dem DistributionNotFound-Fehler
So installieren und konfigurieren Sie Amsel
Verwendung von .bash_profile und .bashrc
Wie fange ich mit Django an?
So speichern Sie einen Teil eines langen Videos mit OpenCV
So installieren und verwenden Sie Graphviz
Umgang mit Fehlern bei der Installation von Python und Pip mit Choco
Laden Sie das GIF-Bild mit Python + OpenCV
Bereiten Sie eine Umgebung für die Verwendung von OpenCV und Pillow mit AWS Lambda vor
So berechnen Sie das Datum mit Python
So installieren Sie den MySQL-Connector mit pip3
So verbinden Sie INNER mit SQL Alchemy
[ROS2] So spielen Sie eine Bag-Datei mit Start im Python-Format ab
So installieren Sie Anaconda mit pyenv
So erstellen Sie eine Python- und Jupyter-Ausführungsumgebung mit VSCode
Zeichnen Sie Figuren mit OpenCV und PIL