Когда мы используем numpy.dstack()
, нам не нужно расширять измерение вручную, оно позаботится об этой работе и сложит ее вдоль третьей оси, что мы хотим.
In [4]: grayscale = np.random.random_sample((224,224))
# make it RGB by stacking the grayscale image along depth dimension 3 times
In [5]: rgb = np.dstack([grayscale]*3)
In [6]: rgb.shape
Out[6]: (224, 224, 3)
Для вашего конкретного случая это должно быть:
rsize_rgb = np.dstack([rsize]*3)
По какой-то причине, если вы все еще хотите увеличить размер вашего изображения в градациях серого на 1, а затем сделать его как RGB-изображение, тогда вы можете использовать numpy.concatenate()
как в:
In [9]: rgb = np.concatenate([grayscale[..., np.newaxis]]*3, axis=2)
In [10]: rgb.shape
Out[10]: (224, 224, 3)
Для вашего конкретного случая это будет:
rsize_rgb = np.concatenate([rsize[..., np.newaxis]]*3, axis=2)