2017-04-22 1 views
1

J'ai le code suivant sur la bibliothèque imageio Python, qui charge 2 images que j'ai du dossier courant, remplace toutes les couleurs> 200 par 0 (le rendant plus sombre) et puis imprimer le résultat à une nouvelle .gif Image:Le module imageio de Python ne retourne pas plus d'une image

import imageio 
import numpy as np 

im = 'image1.png' 
im2 = 'image2.png' 
images = [] 
images.append(imageio.imread(im)) 
images.append(imageio.imread(im2)) 
imageio.mimsave('surface1.gif', images, duration = 0.5) 

im4 = imageio.imread('surface1.gif') 
im4[im4 > 200] = 0 
imageio.imwrite('movie.gif', im4, format='gif') 

le problème est que l'image générée ne contient que 1 image, seulement 1 image et non à la fois des images que j'ai déjà « fusionnée » dans un surface1 .gif. Pourquoi donc?

Répondre

0

En utilisant les get_reader et get_writer objets que vous pouvez le faire comme ceci:

import imageio 
import numpy as np 

im = 'image1.png' 
im2 = 'image2.png' 
images = [] 
images.append(imageio.imread(im)) 
images.append(imageio.imread(im2)) 
imageio.mimsave('surface1.gif', images, duration = 0.5) 

im4 = imageio.get_reader('surface1.gif') 
writer = imageio.get_writer('movie.gif', duration = 0.5) 
for im in im4: 
    im[im > 200] = 0 
    writer.append_data(im[:, :, :]) 
writer.close() 

Je l'ai testé et fonctionne comme prévu.