opencv中的rgb转gray的计算方法

转换原理

在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 Gray Mean: 165.75651861702127
Custom Gray Mean: 165.73745658294064
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chen_znn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值