将一个二维的numpy数组转换成一个三维的numpy数组,表示灰度图像。

3

我正在使用OpenCV与numpy和Python。我有一个2D的uint8 numpy数组。这些值表示阈值图像中超过阈值像素的局部密度。我想将其转换为三维RGB图像,其中所有RGB值都设置为相同,因此基本上是灰度图像,其中最大值得到(255,255,255),其他所有值按比例缩放。(我需要RGB,因为这似乎是我可以使用OpenCV写入视频的唯一类型的图像)。哪种方法最有效?

1个回答

4

我假设您有一张二维灰度图像,类似于:

>>> import cv2
>>> img_gray = cv2.imread('./440px-Lenna.png', cv2.CV_LOAD_IMAGE_GRAYSCALE) # image take from http://en.wikipedia.org/wiki/Lenna

现在img_gray包含一个灰度图像:
>>> print(img_gray.shape)
 (440, 440)

您可以使用cv2.cvtColor以高效的方式将图像转换为BGR:
>>> img_bgr = cv2.cvtColor(img_gray, cv2.COLOR_GRAY2BGR)
>>> print(img_bgr.shape)
 (440, 440, 3)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接