OpenCV使用BGR而非RGB格式
参考 OpenCV使用BGR而非RGB格式 - 云+社区 - 腾讯云
日常开发和交流时,我们习惯将图片的颜色通道按照RGB(red, green, blue)进行排列。闲来无聊,在把玩卷积神经网络模型时发现OpenCV并没有按照这个顺序读入图片。好奇地搜索一下OpenCV为什么使用BGR而非RGB。看到这篇博文:Why does OpenCV use BGR color format。
仔细阅读这篇博文,作者在使用matplotlib
显式OpenCV读入的图片,发现图片显示很怪异。
原图如下:
使用OpenCV读取在matplotlib上显示的结果
文中作者在一个大会上问了OpenCV的作者为什么使用BGR格式而不是使用RGB。他得到的答案总结起来就是由于历史的原因。文中还用了一个很搞笑的故事来说明这个事实:为什么美国的标准铁路轨距为4英尺8.5英寸。对这个故事有兴趣的可以看原博文。
那么这个历史原因是什么:
早期开发者使用BGR作为颜色的空间的原因在于:那个时候的BGR格式在相机制造厂商和软件提供商之间比较受欢迎。例如。在Windows中,当使用 COLORREF 指定颜色值时,使用BGR格式0x00bbggrr。
OpenCV使用BGR而非RGB格式相关推荐
- OpenCV系列 | BGR图像转换为RGB图像
目录 方法一 方法二 使用OpenCV加载图像时,默认使用BGR的格式,而使用matplotlib显示图像时又采用RGB的格式,因此显示图像时,会显得非常奇怪. 如以一张船的照片为例,原图如下: 使用 ...
- OpenCV读出来的是按BGR存储的,如何转变成传统的RGB格式
opencv 视频帧的数据是按按BGR存储的,想转变成传统的RGB格式便于和其他库对接使用 方法1 核心代码 cv2.cvtColor(Frame,cv2.COLOR_BGR2RGB) ,其中 Fra ...
- OpenCV - 将图片转换为深度学习模型输入格式,BGR通道转RGB,图片归一化,HWC转CHW
文章目录 1 将图片转换为深度模型输入格式 1.1 自行进行转换 1.1.1 BGR通道转RGB通道 1.1.2 图片归一化 1.1.3 HWC转CHW 1.2 使用cv::dnn::blobFrom ...
- 为什么opencv使用BGR 格式,而不是RGB格式?
https://www.learnopencv.com/why-does-opencv-use-bgr-color-format/ 原因其实很简单啊,这个解释非常的风趣,"古罗马的马屁股&q ...
- OpenCV教程(14)问题思考---- 深度学习中为什么普遍使用BGR而不用RGB?
Table of Contents 1. 发现问题 现象: 2. 提出问题 问题:为什么使用BRG描述图像,而非RGB通道? 3. 合理假设 4. 求解 stackoverflow解答 1. 发现问题 ...
- Opencv 深度学习中为什么普遍使用BGR而不用RGB?
因为那个年代比较流行BGR,opencv使用了BGR,但现在比较流行RGB,这是历史遗留问题,opencv也不好改回来了. 参考文章:OpenCV教程(14)问题思考---- 深度学习中为什么普遍使用 ...
- 在Python中使用OpenCV将RGB格式的图像转换为HSV格式的图像
An HSV is another type of color space in which H stands for Hue, S stands for Saturation and V stand ...
- 【DSP开发】【VS开发】YUV与RGB格式转换
[视频处理]YUV与RGB格式转换 YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与 ...
- YUV / RGB 格式及快速转换算法
1 前言 自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用 的过程,所以在不同的应用领域中为了更好更准确 ...
- python–颜色英文与RGB格式互转
python–颜色英文与RGB格式互转 使用pip安装webcolors pip install webcolors 1- 导入webcolors import webcolors 2-英文转RGB ...
最新文章
- Java 8新特性——default方法(defenece方法)介绍
- C++中const与指针
- 固定UILabel宽度分行显示
- 如何在anaconda环境下安装tensorflow/pytorch/keras等
- java线程池案例_使用Executors 和 ThreadPoolExecutor实现Java线程池案例
- 要想深入理解mysql索引?这16个点你必须要了解!
- UE3 供游戏性程序员的使用的性能最优化方法
- java 下面的while语句退出时_java 下面的while语句退出时
- linux 网络 路由,网络路由的顺序在Linux中是否重要?
- 【数字信号处理】基于matlab GUI IIR低通+FIR高通信号时域+频谱分析【含Matlab源码 1029期】
- VS2019的动态库dll在lua中调用及lua.exe和luac.exe的使用方法
- Linux中rpm详解
- three.js透视投影相机PerspectiveCamera
- 硬脆材料划片机的工艺参数研究
- Linux遇到Aborted (core dumped)
- 八边形类 Octagon
- 信号类型(雷达)——连续波雷达(二)
- 双十一投影买什么?投影仪该如何选择?家用投影详细选购攻略
- 长江口陆地、岛屿变迁与沙地人迁徙史.doc
- oracle监控pga,监控PGA最大空间、分配