Я хочу, чтобы иметь возможность преобразовывать массивы numpy в изображения. Во-первых, я научился преобразовывать массив 3D (hight x width x color
) в изображение. После некоторых исследований мне кажется, что PIL (или подушка) - самый естественный способ сделать это. Вот как я это делаю в данный момент (и это работает отлично):Возможно ли генерировать анимацию gif только с помощью библиотеки подушек?
from PIL import Image
import numpy as np
if __name__ == '__main__':
h = 4
w = 8
arr = np.zeros((h,w,3), dtype=np.uint8)
arr[0, 0, :] = [255,255,0]
arr[3, 7, :] = [0,255,0]
img = Image.fromarray(arr, 'RGB')
img.save('viz.png')
В качестве следующего шага, я хочу, чтобы иметь возможность принимать список 3D массива (или 4D массив, где время является дополнительное измерение) и генерировать соответствующую анимацию. Так что, далеко я не нашел, как это сделать.
Похоже, что подушка способна читать gif-анимацию. Используя ImageSequence, мы можем получить доступ к его фреймам. Однако я не могу понять, как можно поместить последовательность изображений в анимацию.
Я видел некоторые решения, которые используют ìmages2gif
, но я хотел бы остаться с одной библиотекой.
ДОБАВЛЕНО
Ответы here не ответили на мой вопрос. Они используют библиотеку gifmaker
, которую я даже не могу установить по пипсу.
Возможный дубликат [Сохранение анимированного GIF в подушку] (http://stackoverflow.com/questions/24688802/saving-an-animated-gif-in- подушка) – Reti43
@ Reti43, нет, я хочу сделать это в подушке, и ответ там использует 'gifmaker'. – Roman
Каков сценарий из Pillow, который является оберточной функцией для вызова 'Image.save()' со специальным параметром. Это не работает для вас? – Reti43