1

我有以下关于 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 中的两个图像。这是为什么?

4

1 回答 1

0

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

我对其进行了测试并按预期工作。

于 2017-07-26T06:53:58.053 回答