我将OpenCV与numpy和Python一起使用。我有一个2D uint8
numpy数组。这些值表示来自阈值化图像的超过阈值像素的局部密度。我想把它转换成一个三维RGB图像,所有RGB值都设置相同,所以基本上是一个灰度图像,其中最大值为(255,255,255)
,其他所有值都相应地缩放。(我需要RGB,因为这似乎是我唯一可以用OpenCV写入视频的图像)。最有效的方法是什么?
我假设您有一个2D灰度图像,类似于:
>>> 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)