Me gustaría mostrar una animación simple llamando al imshow
en un bucle for. He aquí una demostración de mi problema:¿Por qué mi animación pylab se ralentiza con cada actualización?
import pylab,time
images = [pylab.uniform(0,255,(50,50)) for _ in xrange(40)]
pylab.ion()
timings = []
for img in images:
tic = time.time()
pylab.imshow(img)
pylab.draw()
toc = time.time()
timings.append(toc-tic)
pylab.clf()
pylab.plot(timings)
pylab.title('elapsed time per iteration')
pylab.ioff()
pylab.show()
Tenga en cuenta que genero las imágenes antes de ejecutar el bucle, y que las únicas partes que de tiempo son los imshow
y draw
funciones. Obtengo resultados que se ven así:
¿Cómo puedo evitar esta ralentización?