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

问题描述 投票:1回答:1

我有一个黑色和白色的图像(224,224)形状,但我想要(224,224,3),所以我需要扩大昏暗,但不是空值,所以np.expand_dimsnp.atleast_3d无法帮助我。我该怎么做才能正确?谢谢。

我用的是什么:

from PIL import Image
img = Image.open('data/'+link)
rsize = img.resize((224,224))
rsizeArr = np.asarray(rsize)
python numpy computer-vision python-imaging-library rgb
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.