opencv中的rgb转gray的计算方法

03-01 1185阅读

转换原理

在opencv中,可以使用cv2.cvtColor函数将rgb图像转换为gray图像。示例代码如下,

import cv2
img_path = "image.jpg"
image = cv2.imread(img_path)
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
mean = gray_image.mean()
print("OpenCV Gray Mean:", mean)

转换的原理是使用加权平均法,每个通道的值乘以一个特定的权重,然后将它们相加以得到灰度值。公式如下:

灰度值 = 0.2989 * R + 0.5870 * G + 0.1140 * B

在这个公式中,R、G、B分别代表红色、绿色和蓝色通道的像素值,而0.2989、0.5870、0.1140是对应的权重(基于国际电工委员会(CIE)制定的标准)。这些权重的选择是基于人眼对不同颜色的敏感度,因为人眼对绿色最敏感,其次是红色,最不敏感的是蓝色。示例代码如下,

import cv2
img_path = "image.jpg"
image = cv2.imread(img_path)          
gray_image = 0.2989 * image[:,:,2] + 0.5870 * image[:,:,1] + 0.1140 * image[:,:,0]
mean = gray_image.mean()
print("Custom Gray Mean:", mean)

结果展示

使用以上示例代码对下图进行转换,得到的结果如下,

opencv中的rgb转gray的计算方法

OpenCV Gray Mean: 165.75651861702127
Custom Gray Mean: 165.73745658294064
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]