Chargement / affichage et accélération de gif avec python [OpenCV]

C'est complètement un mémo. .. J'ai l'impression de l'utiliser souvent (?)

Lis

version scikit-vidéo

from skvideo.io import vread
gif = vread("sample.gif")
# print(gif.shape) # => (Exemple): (21, 600, 600, 3)

――Mais c'est lent, donc je pense que ↓ c'est mieux

Version OpenCV

--Vite

import cv2
import numpy as np

# faster than `vread` in `skvideo.io`
def vread(path, T=30):
    cap = cv2.VideoCapture(path)
    gif = [cap.read()[1][:,:,::-1] for i in range(T)]
    gif = np.array(gif)
    cap.release()
    return gif

gif = vread("sample.gif", T=21)
# print(gif.shape) # => (Exemple): (21, 600, 600, 3)

――Le seul inconvénient est que vous devez indiquer le nombre d'images.

import cv2

filepath = "data/raw/GH010005-0.mp4"
cap = cv2.VideoCapture(filepath)

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret:
        cv2.imshow("Frame", frame)
        cv2.waitKey(1)
    else:
        cap.release()
cv2.destroyAllWindows()

afficher

Étalage

import cv2
cv2.namedWindow("frame", cv2.WINDOW_NORMAL)

for t in range(len(gif)):
    cv2.imshow("frame", gif[t])
    cv2.waitKey(50) #Il ne s'affichera que si vous attendez un moment

cv2.destroyAllWindows()

output (1).gif

Afficher sur Jupyter

import matplotlib.pyplot as plt
%matplotlib inline

plt.figure(figsize=(21,9))
for t in range(21):
    plt.subplot(3,7,t+1)
    plt.imshow(gif[t])
plt.show()

Screenshot from 2019-11-24 20-56-10.png

l'écriture

import moviepy.editor as mpy
def npy_to_gif(npy, filename):
    clip = mpy.ImageSequenceClip(list(npy), fps=10)
    clip.write_gif(filename)

(Comparaison du temps de chargement)

--OpenCV gagne!

Screenshot from 2019-11-24 21-02-39.png

c'est tout!

(Gif emprunté ici https://miro.medium.com/max/1200/1*LnQ5sRu-tJmlvRWmDsdSvw.gif)

Recommended Posts

Chargement / affichage et accélération de gif avec python [OpenCV]
Briller la vie avec Python et OpenCV
Réseau neuronal avec OpenCV 3 et Python 3
Lire et écrire NetCDF avec Python
Lire et écrire du CSV avec Python
Capturer des images avec Pupil, python et OpenCV
Lire et écrire des fichiers JSON avec Python
Hello World et détection de visage avec OpenCV 4.3 + Python
Installez OpenCV 4.0 et Python 3.7 sur Windows 10 avec Anaconda
La lecture et l'écriture s'adaptent aux fichiers avec Python (mémo)
Correspondance des fonctionnalités avec OpenCV 3 et Python 3 (A-KAZE, KNN)
Exemple de lecture et d'écriture de CSV avec Python
Binarisation avec OpenCV / Python
J'ai essayé d'accélérer le code Python, y compris l'instruction if avec Numba et Cython
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Remarques sur l'accélération du code Python avec Numba
[Python] Taille d'image de la caméra Web et paramètres FPS avec OpenCV
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
"Traitement Apple" avec OpenCV3 + Python3
Python et matériel - Utilisation de RS232C avec Python -
Édition d'image avec python OpenCV
Capture de caméra avec Python + OpenCV
Lire des fichiers .txt avec Python
Détection de visage avec Python + OpenCV
python avec pyenv et venv
Concernant l'accélération de python (Note)
Utiliser OpenCV avec Python @Mac
Fonctionne avec Python et R
Découvrez la puissance de l'accélération avec NumPy / SciPy
Essayez d'ouvrir une sous-fenêtre avec PyQt5 et Python
Convertir une vidéo en noir et blanc avec ffmpeg + python + opencv
[Python] Lecture facile des fichiers image du numéro de série avec OpenCV
Communiquez avec FX-5204PS avec Python et PyUSB
Construction d'environnement de python et opencv
Interpolation automatique des images avec OpenCV et Python (méthode de marche rapide, Navier-Stokes)
Robot fonctionnant avec Arduino et python
Installez Python 2.7.9 et Python 3.4.x avec pip.
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
Modulation et démodulation AM avec python
Scraping avec Node, Ruby et Python
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
Grattage avec Python, Selenium et Chromedriver
Créez une illusion rayée avec correction gamma pour Python3 et openCV3
Grattage avec Python et belle soupe
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
Créez un simple OMR (lecteur de feuille de marque) avec Python et OpenCV
Encodage et décodage JSON avec python
Programmation facile Python + OpenCV avec Canopy
[GUI en Python] PyQt5-Glisser-déposer-
Dessinez une illusion d'aquarelle avec détection des contours en Python3 et openCV3
Lecture et écriture de fichiers CSV Python
Essayez la reconnaissance faciale avec python + OpenCV
Accélérez grossièrement Python avec numba
Découpez le visage avec Python + OpenCV
Reconnaissance faciale avec caméra avec opencv3 + python2.7
J'ai joué avec PyQt5 et Python3
Charger une image gif avec Python + OpenCV
Trouver la similitude d'image avec Python + OpenCV