0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么OpenCV使用BGR颜色格式?

新机器视觉 来源:OpenCV与AI深度学习 作者:OpenCV与AI深度学习 2022-12-16 14:57 800次阅读

良好设计的要素之一是最小惊讶原则(又称最小意外原则)。一个好的直观设计让用户不会思考。

当你看到门上的把手时,你想拉它。当你看到一扇带有金属板的门时,你想推它。这些是门的使用者的期望,当门的设计者尊重这些期望时,用户可以在不施加任何精神能量的情况下使用门。但如果设计与用户的期望不一致,那么简单的开门动作就会成为一种心理负担。

OpenCV 是一个非常有用的库,但是说到最小意外原则,它就是一场不合格的灾难。当我在 MATLAB 中编写计算机视觉代码时,我很少参考文档。在使用 OpenCV 时,我在浏览器选项卡中永久打开了文档。

OpenCV 的构建似乎考虑到了最大惊喜的原则!这一切都始于默认的 BGR 像素格式。它不适用于使用标准 RGB 像素格式的库。例如,当您在 OpenCV 中使用imread读取图像后尝试使用matplotlib显示图像时,结果看起来很有趣。

“当其他人及其阿姨都使用 RGB 时,为什么不使用 RGB?”

这是我在几个月前的一次会议上遇到 OpenCV 的创始人 Gary Bradski 博士时问他的问题,尽管我忽略了关于每个人和他们的阿姨使用 RGB 的部分。他用另一个问题回答了我的问题。

“为什么美国标准的铁路轨距是 4 英尺 8.5 英寸?”

这个问题的答案当然是“因为罗马马的屁股!”

对于不知道这个不太真实的故事的人,我从snopes复制了以下内容

abb1e7e0-7c7d-11ed-8abf-dac502259ad0.png

为什么他们在 OpenCV 中选择 BGR 颜色空间?

OpenCV 的早期开发人员之所以选择 BGR 颜色格式,是因为当时 BGR 颜色格式在相机制造商和软件提供商中很流行。例如在 Windows 中,当使用COLORREF指定颜色值时,它们使用 BGR 格式0x00bbggrr。

BGR 是出于历史原因做出的选择,现在我们必须接受它。换句话说,BGR 是 OpenCV 中的马的屁股。^_^

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RGB
    RGB
    +关注

    关注

    4

    文章

    803

    浏览量

    59109
  • OpenCV
    +关注

    关注

    31

    文章

    637

    浏览量

    41963

原文标题:冷知识 | 为什么OpenCV使用BGR颜色格式?

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    为LSDK构建opencv时遇到的问题求解

    我正在尝试使用 flex-builder 来运行 bld -c opencv -r ubuntu:桌面 我想要最新版本的 OpenCV。在我的 sdk.yml 文件中,我将 opencv
    发表于 03-26 08:26

    Labview里更改wrl格式颜色

    Labview里不知道哪位大神知道可以更改wrl格式颜色属性,找了半天没找到。急!
    发表于 03-12 10:12

    如何确定在OpenVINO™ Toolkit中预处理支持的输入颜色格式

    无法确定在 OpenVINO™ Toolkit 中预处理支持的输入颜色格式
    发表于 03-06 07:28

    使用OpenCV保存从摄像头捕获的视频时更改颜色输出视频收到警告怎么解决?

    保存了从配备 OpenCV* 的摄像头捕获的视频。 生成更改的颜色输出视频。 收到警告:[ INFO:0] global .。/opencv/modules/core/src/utils
    发表于 03-05 07:20

    THS8200出来的视频图像是YPbPr格式,但是显示颜色不对,如何处理?

    出来的视频图像是YPbPr格式,但是显示颜色不对,亮度信号里有彩色信号,请问该如何处理。盼复!
    发表于 02-13 06:29

    如何选择PCB颜色

    一、PCB颜色代表什么意思?   PCB颜色一般是指拿到一块PCB板时最直观看到的板子上的油色,PCB表面的颜色就是阻焊剂的颜色。PCB板染色颜料是一种硬化树脂,主体树脂是无色近透明的
    的头像 发表于 12-24 11:33 658次阅读

    【AI实战项目】基于OpenCV的“颜色识别项目”完整操作过程

    OpenCV是一个广受欢迎且极为流行的计算机视觉库,它因其强大的功能、灵活性和开源特性而在开发者和研究者中备受青睐。学习OpenCV主要就是学习里面的计算机视觉算法。要学习这些算法的原理,知道它们
    的头像 发表于 12-09 16:42 845次阅读
    【AI实战项目】基于<b class='flag-5'>OpenCV</b>的“<b class='flag-5'>颜色</b>识别项目”完整操作过程

    脚本美化高手之轻松实现文本颜色和背景定制的酷炫Shell技巧

    �33[0m Hello World " 输出效果如下: 它的格式是这样的: echo -e "�33[字背景颜色;字体颜色m 字符串 �33[0m" 或者printf "�33[字背景颜色
    的头像 发表于 12-06 10:38 423次阅读
    脚本美化高手之轻松实现文本<b class='flag-5'>颜色</b>和背景定制的酷炫Shell技巧

    基于OpenCV的拆分和合并图像通道实验案例分享_基于RK3568教学实验箱

    一、实验目的 本节视频的目的是了解图像通道的概念,学习OpenCV的基本操作,并掌握通过OpenCV实现拆分和合并图像通道的方法。 二、实验原理 拆分与合并图像 在图像处理中,一个彩色图像通常由多个
    发表于 12-03 14:27

    RK3568 + OpenCV 会碰撞出什么火花?案例详解:2-1 基于OpenCV的画线实验

    一、实验目的 本节视频的目的是了解OpenCV的作用并通过OpenCV实现画线。 二、实验原理 OpenCV 开放源代码计算机视觉库 OpenCV(Open source Comput
    发表于 12-03 14:09

    基于OPENCV的相机捕捉视频进行人脸检测--米尔NXP i.MX93开发板

    摄像头)1、安装python3-opencvaptinstallpython3-opencv2、查看摄像头支持的格式与分辨率root@de
    的头像 发表于 11-07 09:03 1289次阅读
    基于<b class='flag-5'>OPENCV</b>的相机捕捉视频进行人脸检测--米尔NXP i.MX93开发板

    OpenCV图像识别C++代码

    安装OpenCV库 首先,您需要在您的计算机上安装OpenCV库。您可以从OpenCV官网下载预编译的库或从源代码编译。安装完成后,确保将OpenCV的头文件和库文件添加到您的项目中。
    的头像 发表于 07-16 10:42 3088次阅读

    opencv-python和opencv一样吗

    不一样。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了大量的图像和视频处理功能。OpenCV
    的头像 发表于 07-16 10:38 1694次阅读

    opencv的主要功能有哪些

    OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,提供了大量的计算机视觉算法和工具。以下是OpenCV的主要功能: 图像处理
    的头像 发表于 07-16 10:35 2198次阅读

    emWin转RGB565颜色失真怎么解决?

    我今天测试了一下一张纯色图片RGB24 的格式 颜色值:0xe9e9e9,用ST的BmpCvtST.exe转出来RGB565格式的 里面全是0xE75C。 用Img2Lcd转出来的是0xEF5D
    发表于 04-24 06:31