Просто сложите 4 копии вашего одноканального изображения с np.dstack()
:
RGBA = np.dstack((im,im,im,im)) # or more tersely RGBA = np.dstack(([im]*4))
Пример :
import numpy as np
# Make image
im = np.array([0,255,255,0,0], dtype=np.uint8)
Посмотрите на это:
array([ 0, 255, 255, 0, 0], dtype=uint8)
Сложите его по глубине с помощью np.dstack()
:
RGBA = np.dstack((im,im,im,im))
Посмотрите на это:
array([[[ 0, 0, 0, 0],
[255, 255, 255, 255],
[255, 255, 255, 255],
[ 0, 0, 0, 0],
[ 0, 0, 0, 0]]], dtype=uint8)