opencv python 灰度_python – Opencv – 灰度模式与灰色转换

注意:这不是重复,因为OP知道来自cv2.imread的图像是BGR格式(不同于建议的重复问题,假设它是RGB,因此提供的答案仅解决该问题)

为了说明,我打开了这个相同颜色的JPEG图像:

mzjlI.png

一旦使用转换

img = cv2.imread(path)

img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

另一种是以灰度模式加载它

img_gray_mode = cv2.imread(path, cv2.IMREAD_GRAYSCALE)

就像你记录的那样,两幅图像之间的差异并不完全是0,我可以看到左右两侧的差异像素

d1uh1.png

我也总结了差异

import numpy as np

np.sum(diff)

# I got 6143, on a 494 x 750 image

我尝试了所有cv2.imread()模式

在cv2.imread()的所有IMREAD_模式中,只能使用COLOR_BGR2GRAY转换IMREAD_COLOR和IMREAD_ANYCOLOR,并且它们都给了我与IMREAD_GRAYSCALE中打开的图像相同的差异.

差异似乎并不大.我的猜测来自两种方法中数值计算的差异(加载灰度与转换为灰度)

当然,您要避免的是在特定版本的图像上微调您的代码,以发现它对于来自不同来源的图像来说是次优的.

简而言之,我们不要混合处理管道中的版本和类型.

所以我会保持图像源均匀,例如如果您从BGR中的摄像机捕获图像,那么我将使用BGR作为源,并将BGR转换为灰度转换cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

反之亦然,如果我的最终源是灰度,那么我将以灰度cv2.imread(path,cv2.IMREAD_GRAYSCALE)打开文件和视频捕获

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值