前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【AI-1000问】为什么OpenCV读取的图像格式是BGR?

【AI-1000问】为什么OpenCV读取的图像格式是BGR?

作者头像
用户1508658
发布2019-07-26 16:56:30
3K0
发布2019-07-26 16:56:30
举报
文章被收录于专栏:有三AI有三AI

为什么OpenCV存储的图像格式是BGR呢?

做图像处理的我们应该都知道,OpenCV是我们必备的一个工具,我们在使用OpenCV读取图像时你应该也发现了读取出来的数组居然是BGR格式,而不是我们听的最多,用的最多的RGB格式,这是为什么呢?有同学思考过这个问题吗?

作者/编辑 汤兴旺

我们用OpenCV和PIL读取下面一张图片,对比看下结果:

OpenCV读取图片:

import cv2

filename="/home/tangxingwang/01.jpeg"

img = cv2.imread(filename)

print(img)

PIL:读取图片:

import numpy as np

from PIL import Image

filename="/home/tangxingwang/01.jpeg"

img=Image.open(filename)

img_arr=np.array(img)

print(img_arr)

从上面我们的对比我们明显就看出OpenCV读取图片的格式和PIL不一样,OpenCV是BGR格式,PIL是RGB格式,为什么?

解答:OpenCV在1999年由Intel建立,当时主流的摄像头制造商和软件供应商提供的摄像头采集的图像的通道排列顺序为BGR,另外对于图片,位图BMP是最简单的,也是Windows显示图片的基本格式,其文件扩展名为*.BMP。在Windows下,任何格式的图片文件(包括视频播放)都要转化为位图才能显示出来,各种格式的图片文件也都是在位图格式的基础上采用不同的压缩算法生成的,值得注意的是位图BMP的格式就是BGR。正是基于BGR在当时被广泛使用,于是早期OpenCV开发者就选择BGR颜色格式,这也就成为了一种规范一直用到现在。

思考

今天的问题就到这里了,不知道是否解决了您心中的困惑呢?另外如果您在学习深度学习过程中遇到不懂且有趣的问题欢迎留言,说不定下一问就解答您的问题呢?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有三AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档