簡體   English   中英

Python的imageio模塊不會返回多個幀

[英]Python's imageio module doesn't return more than one frame

我有以下關於imageio Python庫的代碼,它從當前文件夾中加載2個圖像,將所有顏色> 200替換為0(使其更暗),然后將結果打印到新的.gif圖像:

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中“合並”的兩個圖像。 這是為什么?

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM