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

思考

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

转载文章请后台联系

侵权必究

(0)

相关推荐

  • OpenCV入门教程(含人脸检测与常用图像处理示例等)

    在这篇文章中,我们将提供一些使用OpenCV的示例. 在OpenCV中混合图像 我们将提供一个逐步的示例,说明如何使用Python OpenCV混合图像.下面我们展示了目标图像和滤镜图像. 目标图像 ...

  • 在 Google Colab 中使用 OpenCV 进行图像处理简介

    重磅干货,第一时间送达 在这篇文章中,我们将实现如何使用 OpenCV 在 google colaboratory 中进行图像处理.为此,我们应该了解一些 Python 基础知识,下面给出的步骤将帮助 ...

  • 如何转换opencv的图片格式在pytorch中使用

    首先,如上图所示,opencv读入的图像为 RGB格式,但是我们在pytorch中进行图像处理时,要先将RGB转换成BGR,然后在使用img = Image.fromarray(np.uint8(se ...

  • OpenCV基础知识入门

    本文旨在让你快速入门opencv. OpenCV OpenCV是计算机视觉中最受欢迎的库,最初由intel使用C和C ++进行开发的,现在也可以在python中使用.该库是一个跨平台的开源库,是免费使 ...

  • 【从零学习OpenCV】 视频数据的读取&摄像头的直接调用

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • OpenCV-Python学习教程.2

    如果你用Linux得设备,可能会用到这里来看有没有设备被安全挂载.因为没有一个图形化的页面来方便的查看. 子Linux不是太好使 # 获取视频帧的宽w = fcap.get(cv2.CAP_PROP_ ...

  • OpenCV CUDA简介

    文章概述 ·处理单个图像 ·处理一系列图像 ·对一系列图像使用Dask进行并行延时处理 处理单个图像 首先,我们需要创建GPU空间(GPU_frame)来保存图像(就像相框保存图片一样),然后才能将图 ...

  • 【从零学习OpenCV 4】颜色模型与转换

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • 使用OpenCV实现图像覆盖

    重磅干货,第一时间送达 每张图像都包括RGB三个通道,分别代表红色.绿色和蓝色,使用它们来定义图像中任意一点的像素值,红绿蓝的值在0-255之间. 例如:一个像素值[255,0,0]代表全部为红色,像 ...

  • 常见的图像处理技术

    重磅干货,第一时间送达 本期文章中,让我们一起来学习以下内容. 通过PIL和OpenCV来使用一些常见的图像处理技术,例如将RGB图像转换为灰度图像.旋转图像.对图像进行消噪.检测图像中的边缘以及裁剪 ...

  • 使用OpenCV进行颜色分割

    重磅干货,第一时间送达 在滤波.变换.缩放等任务中,图像分割具有重要的意义.图像分割是将不同的对象划分为不同的部分,并将这些区域以明显的颜色或者记号标记出来.图像分割是使用轮廓.边界框等概念进行其他高 ...

  • (11条消息) Opencv 读取灰度图像会识别为3通道问题

    最近初接触图像cv,一切都是从零开始因此遇到了许多问题,故在此记录遇到的问题方便提醒自己也方便后来人不再困惑. 场景: 我们都知道灰度图或者红外图都是单通道图片,而彩色图片是三通道图片.但是当我们用i ...

  • 【从零学习OpenCV】图像的保存&视频的保存

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...