如何使用颜色维度将 RGB 转换为灰度

How to convert RGB to grayscale by using color dimensions

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

提前致谢。

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

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

此处提到的具体权重取自 ATSC 制定的用于 HDTV 的 ITU-R BT.709 标准 (https://en.wikipedia.org/wiki/Grayscale)