tôi đã sử dụng kịch bản này để chuyển đổi một bộ phim với một mảng + cửa hàng nhị phân NumPy:
"""
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)
lưu ý rằng tùy thuộc vào công ước của bạn, bạn có thể không muốn lật hình ảnh. sau đó bạn có thể tải nó bằng cách sử dụng:
load('walking.npy')
Mặc dù đây là cũ, tôi có mã Python lấy tên tệp và trả về trình lặp của hình ảnh PIL. Tôi có thể đăng mã nguồn nếu có ai quan tâm. – carl