Вы описываете изображения: 3D-массивы с каналами R, G и B на последней оси. По сути, вы хотите иметь возможность рисовать изображения с помощью Python. У вас есть много вариантов, но первый, который я, вероятно, достигну, будет PIL
(сбивает с толку, библиотека называется PIL
, но устанавливаемый вами пакет - pillow
).
Конечно, вы можете создавать произвольные изображения в matplotlib
с формами, текстом и т. Д., Но я чувствую, что с PIL
все будет проще. Мой совет - начать с учебника, чтобы понять API.
Вот как сделать черный прямоугольник (как в примере, который вы дали):
from PIL import Image
h, w = 24, 30
im = Image.new("RGB", (w, h), "black")
Теперь я могу написатьHi
в нем, по-голубому:
from PIL import ImageDraw, ImageFont
font = ImageFont.truetype('/path/to/fonts/Consolas.ttf', size=18) # Change this!
ImageDraw.Draw(im).text((5, 4), # Position
'Hi', # String
(0, 255, 255), # Colour
font=font, # Font
)
Конечно, вы можете сохранить это как PNG или GIF или как угодно, или использовать что-то вроде imageio
, чтобы сделать анимированный GIF,Вы можете получить данные в виде массива NumPy с помощью np.asarray(im)
. Он использует беззнаковые int8
значения, поэтому от 0 до 255. Вы можете изменить масштаб, если вам нужно, скажем, от 0 до 1.