【问题标题】:How to convert RGB to grayscale by using color dimensions [closed]如何使用颜色维度将 RGB 转换为灰度 [关闭]
【发布时间】:2017-03-14 04:19:13
【问题描述】:

我想通过不使用转换函数而是使用红绿蓝值将我的 RGB 图像转换为灰度图像。例如,如果我的图像是完全蓝色的,如果我得到它的蓝色分量,它将被转换为白色,如果我得到我的 RGB 图像的红色分量,它将被转换为黑色。它将通过 OpenCV 在 Python 中完成。

提前致谢。

【问题讨论】:

  • 太棒了!让我们知道怎么回事。从这里开始:stackoverflow.com/help/how-to-ask
  • 我无法理解问题所在。你能清楚地阅读我的问题并解释一下吗?
  • 在几乎所有语言和库中,图像都作为数组导入,因此您可以将颜色分割为灰度。例如,图像可能是 300x500x3 阵列(垂直 300 像素,水平 500 像素和 3 个颜色通道)。因此,您可以通过将其切片来获得颜色通道,例如red_channel = image[:, :, 0]blue_channel = image[:,:,2].

标签: python grayscale


【解决方案1】:

您所指的转换函数也是如此 - 它对每个像素的 R、G 和 B 通道值进行加权,并求和。由于 OpenCV 在读取图像时使用 BGR 颜色空间,因此您的转换函数将是这样的-

def rgbToGray(img):
    grayImg = 0.0722*img(:,:,1) + 0.7152*img(:,:,2) + 0.2126*img(:,:,3)
    return grayImg

这里提到的具体权重取自 ATSC (https://en.wikipedia.org/wiki/Grayscale) 开发的用于 HDTV 的 ITU-R BT.709 标准

【讨论】:

    猜你喜欢
    • 2021-11-27
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 2010-10-15
    • 2021-10-08
    • 1970-01-01
    相关资源
    最近更新 更多