2017-04-22 20 views
1

我有以下關於imageio Python庫的代碼,它從當前文件夾中加載2個圖像,用0替換所有顏色> 200(使它變暗) ,然後打印結果到一個新的.gif注意圖像:Python的imageio模塊不會返回多個幀

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') 

的問題是,所產生的圖像只包含1幀中,只有1圖像,但不能同時在一個surface1我已經「合併」的圖像的.gif注意。這是爲什麼?

回答

0

使用get_readerget_writer對象,你可以做這樣的:

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() 

我測試了它和按預期工作。