文章首发于微信公众号《有三AI》

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

为什么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颜色格式,这也就成为了一种规范一直用到现在。

思考

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

转载文章请后台联系

侵权必究

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI

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

  1. 有三AI 1000问回归,备战秋招,更多,更快,更好,等你来战!

    文/编辑 | 言有三 最近遇到了很多朋友来询问<有三AI 1000问>在哪里?本来我做这个专栏的初衷只是想提醒大家要多主动思考,多注意细节,没想到击中了很多同学的痛点,不过之前已经停更了. ...

  2. 洞悉物联网发展1000问之为什么新零售不仅仅是无人零售?

    洞悉物联网发展1000问之为什么新零售不仅仅是无人零售?未来会智能零售吗? 无人零售最早是2016 年12 月亚马逊在西雅图建立的首家无人便利店Amazon Go,名噪一时!与此同时,2016年10月 ...

  3. QT+opencv【opencv学习篇】OpenCV 读取、显示和保存图像

    目录 一.OpenCV 读取图像 OpenCV 读取函数 参数: 二.OpenCV 显示图像 imshow函数 imshow函数功能 imshow函数原型 三.OpenCV 保存图像 四.结果和代码 ...

  4. 洞悉物联网发展1000问之可穿戴设备的未来会怎样?

    现如今可穿戴设备已经成为标配,无论是手环还是手表,其市场份额大抵处于相对稳定状态.从2012年开始的这波行情经历了各种洗牌,现在可穿戴设备市场的下一步会走向何处? 大抵判断下,当前从白领标配的时髦到医 ...

  5. OpenCV读取多幅图片,读取系列图片,读取文件夹中指定图像类型的系列图片

    读取系列图片通常是将文件夹中的所有文件名保存在txt中,再读取,如链接和链接所示.这是通常的操作方法. 之前写过一篇利用OpenCV读取系列图片的例子,参见链接,但是,实际应用中并不能改变文件名,本文 ...

  6. 洞悉物联网发展1000问之软银孙正义的最新三大投资秘诀是什么?

    最近,软银集团发布了2018年的业绩会,不出所料,目前主要的收益来源股票价值约27兆日元,其中阿里巴巴接近占据半壁江山!其他收入主要由从事通信业务的软银株式会社以及Sprint.芯片业务ARM.软银愿 ...

  7. 踩坑记录 PIL与Opencv读取图像的差别

    1.读入的数据类型不同 PIL读入图像,以jepg为例,类型为PIL.JpegImagePlugin.JpegImageFile: Opencv读入图像,直接就是numpy.ndarray. 2.宽. ...

  8. 关于opencv读取摄像头1080P的测试

    最近测试了一下opencv自带的函数读取高清摄像头,究竟能不能做到实时读取?我先是百度了一下,网上很多读取1080p的例子,好像是可以.所以用单位的摄像头做了一个测试,结果如下: 1 opencv读取 ...

  9. 洞悉物联网发展1000问之智能门锁会成为新爆品吗?

    2018年,智能家居出现了全屋智能的概念,同时随着"房子是住的不是用来炒的"政策深化,出现了大量的公租房市场,也就大把的智能门锁的集采订单出现.当然还有一个主因,就是NB-IOT的 ...

最新文章

  1. SAP R/3系统的R和3分别代表什么含义,负载均衡的实现原理
  2. 《乌合之众》读书笔记(part2)--打动群体心灵的,是传奇中的英雄,而绝非现实中的英雄本身
  3. TypeScript class 的访问控制
  4. 团队开发——个人工作总结01
  5. 1.12 改善你的模型的表现
  6. php open_basedir
  7. C++输出斐波那契数列的几种方法
  8. 手把手教你学习ROR-5.Validation
  9. Ant—Ant标签解释
  10. 很清晰的解读i2c协议
  11. 牵手爱情,绎一份不了情缘
  12. 修改Linux中发送邮件中附件大小的限制
  13. 【Codeforces】1635E Cars 题解
  14. c语言中%if是什么意思,C语言中if(!a)表示什么意思?
  15. RTP打包音频g711
  16. 网页文件是用html语言创建的文本文件,把txt文件变成html网页文件
  17. SQL直接计算年龄问题
  18. 论文笔记:Dual Contrastive Loss and Attention for GANs
  19. Spring IOC AOP详细笔记
  20. 浙江大学工程师学院篇|2022年电子信息/通信工程夏令营保研/考研复试经验贴

热门文章

  1. 记一次Spring boot 和Vue前后端分离的入门培训
  2. 用这样的方法,我解决了leetcode的大部分的这种题型!
  3. PROC简单使用用例--VC连接ORACLE
  4. Java提升篇——equals()方法和“==”运算符
  5. 蓝桥杯-矩阵乘法(java)
  6. Android SnackBar:你值得拥有的信息提示控件
  7. Spring Boot实现一个天气预报系统(二)数据同步
  8. android onresume时view,android – 当对话框出现时不调用OnResume
  9. arch linux 同步时间,ArchLinux 设置系统时间
  10. 特别篇 :从 0 开始创作云原生应用 (殷达)