Es ist komplett ein Memo. .. Ich habe das Gefühl, ich benutze es oft (?)
from skvideo.io import vread
gif = vread("sample.gif")
# print(gif.shape) # => (Beispiel): (21, 600, 600, 3)
――Aber das ist langsam, also denke ich ↓ ist besser
--Schnell
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) # => (Beispiel): (21, 600, 600, 3)
――Der einzige Nachteil ist, dass Sie die Anzahl der Frames angeben müssen.
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()
import cv2
cv2.namedWindow("frame", cv2.WINDOW_NORMAL)
for t in range(len(gif)):
cv2.imshow("frame", gif[t])
cv2.waitKey(50) #Es wird nur angezeigt, wenn Sie eine Weile warten
cv2.destroyAllWindows()
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()
import moviepy.editor as mpy
def npy_to_gif(npy, filename):
clip = mpy.ImageSequenceClip(list(npy), fps=10)
clip.write_gif(filename)
(Gif von hier ausgeliehen https://miro.medium.com/max/1200/1*LnQ5sRu-tJmlvRWmDsdSvw.gif)
Recommended Posts