首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenCV使用BGR而非RGB格式

日常开发和交流时,我们习惯将图片的颜色通道按照RGB(red, green, blue)进行排列。闲来无聊,在把玩卷积神经网络模型时发现OpenCV并没有按照这个顺序读入图片。...好奇地搜索一下OpenCV为什么使用BGR而非RGB。看到这篇博文:Why does OpenCV use BGR color format。...文中作者在一个大会上问了OpenCV的作者为什么使用BGR格式而不是使用RGB。他得到的答案总结起来就是由于历史的原因。...那么这个历史原因是什么: 早期开发者使用BGR作为颜色的空间的原因在于:那个时候的BGR格式在相机制造厂商和软件提供商之间比较受欢迎。例如。...在Windows中,当使用 COLORREF 指定颜色值时,使用BGR格式0x00bbggrr。

1.6K10
您找到你想要的搜索结果了吗?
是的
没有找到

opencv-python的RGBBGR互转方式

opencv里对应BGR,故通过C通道的 ::-1 就是把BGR转为RGB 注: [::-1] 代表顺序相反操作 ③ 若不涉及C通道的BGRRGB,如Img[:,:,0]代表B通道,也就是蓝色分量图像...RGBBGR img_bgr = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2BGR) BGR- RGB img_rgb = cv2.cvtColor(img_bgr..., cv2.COLOR_BGR2RGB) 方法3: BRG转RGB rgb = bgr[…,::-1] RGBBGR bgr = rgb[…,::-1] RGB转GBR gbr =...而非RGB的原因 使用opencv读取图片时, 默认的通道顺序是BGR而非RGB,在RGB为主流的当下, 这种默认给我们带来了一点不便。...那么, opencv 为什么要使用BGR而非RGB呢? 目前看到的一种解释说是因为历史原因:早期BGR也比较流行,opencv一开始选择了BGR,到后来即使RGB成为主流,但也不好改了。

6.7K40

RGB格式详解(三)-----RGB像素格式

上一篇讲解了RGB索引格式,算是RGB的开胃菜吧,此篇应该是正餐,讲解RGB的像素格式,主流的有RGB565,RGB555, RGB24,RGB32, ARGB32,每一种格式按照简介,...RGB565: a.概述: RGB565格式每一个像素用16个bit来表示,2个字节, 1个WORD, R, G, B分别用5, 6, 5个bit来表示,格式也因此而得名。...RGB55: a.概述: RGB55, 表示一个像素用16个bit == 2个字节 == 1个WORD,但是最高位不用,R, G, B分别用5个bit...b.存储示意(注意RGB24格式按BGR的方式存储): ? c.获取具体像素值方法: 根据RGB565的存储方式,即可得到获取R,G,B分量的值。...ARGB32: a.概述: ARGB32与RGB32类似,唯一不同的地方便是RGB32保留的8个BIbit用来表示透明,也就是alpha的值。

4.4K10

RGB24,RGB565,RGB444图片质量比较

以下图片,第二幅是RGB24的原图。第一幅是对第二幅进行RGB444的有损变换图,第三幅是对第二幅进行RGB565的有损变换图。其中肉眼很难分辨RGB565和RGB24的差别。...RGB444有明显噪点。 ? RGB444图片 ? RGB24原图 ? RGB565图片 转换都是用的ffmpeg的sws_scale算法。 主要是想比较每种图片的大小。 ?...所以大小也是1216K 188_720_576.bmp_555_1.bmp是转RGB565之后再转回RGB24保存的图片。...大小也是335K 得出结论因为RGB565和RGB444实际占用字节都是16bit,所以 裸数据文件大小一样。...但是RGB444实际上只用了12bit,有4bit无用进行0填充,所以zip压缩率比较大。 然后又进行了一个尝试,就是把RGB444的4bit数据移除。

4.8K60

冷知识 | 为什么OpenCV使用BGR颜色格式?

这一切都始于默认的 BGR 像素格式。它不适用于使用标准 RGB 像素格式的库。例如,当您在 OpenCV 中使用imread读取图像后尝试使用matplotlib显示图像时,结果看起来很有趣。...“当其他人及其阿姨都使用 RGB 时,为什么不使用 RGB?”...这是我在几个月前的一次会议上遇到 OpenCV 的创始人 Gary Bradski 博士时问他的问题,尽管我忽略了关于每个人和他们的阿姨使用 RGB 的部分。他用另一个问题回答了我的问题。...OpenCV 的早期开发人员之所以选择 BGR 颜色格式,是因为当时 BGR 颜色格式在相机制造商和软件提供商中很流行。...例如在 Windows 中,当使用COLORREF指定颜色值时,它们使用 BGR 格式0x00bbggrr。 BGR 是出于历史原因做出的选择,现在我们必须接受它。

1.5K10
领券