benutzte ich dieses Skript einen Film zu einem numpy Array + binären Speicher zu konvertieren:
"""
Takes a MPEG movie and produces a numpy record file with a numpy array.
"""
import os
filename = 'walking'
if not(os.path.isfile(filename + '.npy')): # do nothing if files exists
N_frame = 42 # number of frames we want to store
os.system('ffmpeg -i WALK.MOV.qt -f image2 foo-%03d.png')
# convert them to numpy
from numpy import zeros, save, mean
from pylab import imread
n_x, n_y, n_rgb = imread('foo-001.png').shape
mov = zeros((n_y, n_x, N_frame))
for i_frame in range(N_frame):
name = 'foo-%03d.png' % (i_frame +1)
mov[:n_y,:n_x,i_frame] = flipud(mean(imread(name), axis=2)).T
os.system('rm -f foo-*.png')
save(filename + '.npy', mov)
beachten Sie, dass Ihre Konventionen abhängig von Ihnen nicht um das Bild drehen möchten. Sie können es dann laden mit:
load('walking.npy')
Obwohl dies alt ist, habe ich Python-Code, der einen Dateinamen und einen Iterator von PIL-Bildern zurückgibt. Ich kann den Quellcode veröffentlichen, wenn jemand interessiert ist. – carl