【问题标题】:Convert a 2D numpy array into a 3d numpy array representing a grayscaled image将 2D numpy 数组转换为表示灰度图像的 3d numpy 数组
【发布时间】:2014-06-02 09:27:05
【问题描述】:

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

【问题讨论】:

    标签: python opencv numpy


    【解决方案1】:

    我假设您有一个 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)
    

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 2021-12-29
      • 1970-01-01
      • 2011-05-19
      • 2019-10-31
      • 1970-01-01
      • 2017-07-26
      • 2017-07-27
      • 2015-12-26
      相关资源
      最近更新 更多