当前位置:   article > 正文

opencv中的rgb转gray的计算方法

opencv中的rgb转gray的计算方法

转换原理

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

  1. import cv2
  2. img_path = "image.jpg"
  3. image = cv2.imread(img_path)
  4. gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  5. mean = gray_image.mean()
  6. print("OpenCV Gray Mean:", mean)

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

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

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

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

结果展示

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

  1. OpenCV Gray Mean: 165.75651861702127
  2. Custom Gray Mean: 165.73745658294064
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/172022?site
推荐阅读
相关标签
  

闽ICP备14008679号