vb.net 读取bmp位图_【AI1000问】为什么OpenCV读取的图像格式是BGR?

本文探讨了OpenCV在读取图像时使用BGR格式的原因,源于早期Intel创立OpenCV时的行业标准。与PIL的RGB格式对比,解释了两种库的不同处理方式,并邀请读者分享深度学习学习过程中的疑问。
摘要由CSDN通过智能技术生成
fc5319bdacfd19465239690f2fd4ce4d.png

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

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

作者/编辑 汤兴旺

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

81064df58d893a165c1244f80a9522e6.png

OpenCV读取图片:

import cv2

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

img = cv2.imread(filename)

print(img)

9898c2539d045c209b4587ef951789f3.png

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)

0c5e0b93772e453dd68d53754cab8d1a.png

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

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

思考

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

转载文章请后台联系

侵权必究

更多请关注知乎专栏《有三AI学院》

f07bc25d21df1409ee911e0a7afb28f5.png 0d9eb1163cf764df6a1df49873883d45.png 0d9eb1163cf764df6a1df49873883d45.png

往期精选

  • 【AI初识境】激活函数:从人工设计到自动搜索

  • 【AI初识境】什么是深度学习成功的开始?参数初始化

  • 【AI初识境】深度学习模型中的Normalization,你懂了多少?

  • 【AI初识境】为了围剿SGD大家这些年想过的那十几招

  • 【AI初识境】被Hinton,DeepMind和斯坦福嫌弃的池化,到底是什么?

  • 创业第一天,有三AI扔出了深度学习的150多篇文章和10多个专栏

想要变身”AI专家“,就戳戳手指关注我们吧

别忘了点“好看”支持作者噢  ??? 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值