如何扩展和填充黑白图像的第三暗度

时间:2019-04-27 11:38:19

标签: python numpy computer-vision python-imaging-library rgb

我有一个具有(224,224)形状的黑白图像,但是我想具有(224,224,3)形状,因此我需要扩展暗淡,但不能使用空值,所以np.expand_dims或{{ 1}}无法帮助我。如何正确执行此操作?谢谢。

我用什么

np.atleast_3d

1 个答案:

答案 0 :(得分:1)

当我们使用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)