我想通过不使用转换功能但使用红绿蓝值将RGB图像转换为灰度图像。例如,如果我的图像是完全蓝色的,如果我得到它的蓝色成分,它将被转换为白色,如果我得到RGB图像的红色成分,它将变为黑色。它将通过OpenCV在Python中完成。
提前致谢。
答案 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)