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

时间:2017-03-13 19:08:41

标签: python grayscale

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

此处提到的具体权重取自ATSC开发的用于高清电视的ITU-R BT.709标准(https://en.wikipedia.org/wiki/Grayscale