Background Actuellement, je crée une page Web qui présente moi-même OpenCV mineur. https://featurepoints.jp/opencv_doc/
Donc, je convertis GIF de GIFMAGAZIN en MP4 en tant qu'ensemble de données et j'effectue un traitement d'image, mais comme c'est cv2.imshow (" nom de la fenêtre "" Quand j'essaye de lire une vidéo avec, mat)
, il boucle comme l'affichage du navigateur et se termine en peu de temps sans s'afficher à plusieurs reprises.
Ici, j'écrirai comment boucler la lecture vidéo en utilisant cv2.imshow ()
.
gif to mp4 Il existe deux façons de convertir un fichier gif en mp4. La première consiste à afficher le gif dans le navigateur, à cliquer avec le bouton droit de la souris et à sélectionner «Enregistrer en tant que vidéo sous» pour le convertir. L'autre consiste à convertir en utilisant ffmpeg. (Voir Conversion d'une animation gif en mp4 avec FFmpeg)
ffmpeg -i [chemin du fichier gif] -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" [chemin du fichier mp4]
Method Comment afficher à plusieurs reprises
Development
La vidéo se termine par [ESC], mais vous pouvez enregistrer l'image du cadre en appuyant sur [S].
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 = []
#Lisez la vidéo une fois et stockez les images dans un tableau
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
#Terminer avec ESC
if k == 27:
end = True
break
#Enregistrer l'image avec S
elif k == ord("s"):
cv2.imwrite("output.png ", frame)
if __name__ == '__main__':
main()
Consequence
Afterword Les données vidéo (image) sont [Stop Sento-kun! J'ai essayé d'utiliser GIF Game. Si vous appuyez sur le bouton S au bon moment, l'image affichée comme "belle" sera enregistrée. C'est assez difficile à comprendre. Passez un bon moment: gâteau:
Recommended Posts