Следующий код объясняет вашу проблему:
import numpy as np
import matplotlib.pyplot as plt
A = np.random.rand(10, 10)
B = np.zeros((*A.shape, 3))
B[:,:,0] = A
C = A.reshape((*A.shape, 1)).repeat(3, 2)
fig, axs = plt.subplots(ncols=3)
mats = [A, B, C]
for ax, mat in zip(axs, mats):
ax.imshow(mat)
A
- ваше изображение в градациях серого.B
- это то, что вы сделали: значения A
назначены красному каналу изображения RGB.C
, скорее всего, то, что вам нужно: поскольку вам нужно изображение RGB, вы просто копируете значения A
два раза.Результаты:

Слева направо: A
, B
, C