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

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

3天内不再提示

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

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

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

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

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

    文章

    798

    浏览量

    58451
  • OpenCV
    +关注

    关注

    31

    文章

    634

    浏览量

    41332

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

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

收藏 人收藏

    评论

    相关推荐

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

    OpenCV是一个广受欢迎且极为流行的计算机视觉库,它因其强大的功能、灵活性和开源特性而在开发者和研究者中备受青睐。学习OpenCV主要就是学习里面的计算机视觉算法。要学习这些算法的原理,知道它们
    的头像 发表于 12-09 16:42 268次阅读
    【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 97次阅读
    脚本美化高手之轻松实现文本<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 1072次阅读
    基于<b class='flag-5'>OPENCV</b>的相机捕捉视频进行人脸检测--米尔NXP i.MX93开发板

    OpenCV图像识别C++代码

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

    opencv-python和opencv一样吗

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

    opencv的主要功能有哪些

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

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

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

    【米尔-全志T113-i开发板试用】发布opencv-mobile米尔t113i专享预编译包

    ); fclose(fp); return (strncmp(buf, \"sun8iw20\", 8) == 0); } opencv highgui 模块整合t113-i
    发表于 02-25 20:23

    如何实现PIL和OpenCV之间图像数据的转换呢?

    PIL图像数据格式转换成OpenCV图像数据格式
    的头像 发表于 02-25 13:43 1202次阅读

    【米尔-全志T113-i开发板试用】基础开发环境配置和opencv-mobile移植测试

    /highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> int main() { cv::Mat bgr = cv
    发表于 01-23 15:13

    在全志H616核桃派上实现USB摄像头的OpenCV颜色检测

    像素格式颜色还是那个颜色,只是描述颜色用的参数变了。h代表色调,s代表饱和度,v代表明度,比使用rgb格式更方便计算与思考。
    发表于 01-22 10:10

    在核桃派上实现USB摄像头的OpenCV颜色检测

    在前几周的文章中已经介绍过如何在核桃派上用OpenCV读取图像并显示到pyqt5的窗口上,这里在上一篇文章的基础上,给开发板加入颜色检测功能,尝试将图像中所有蓝色的东西都用一个框标记出来。
    的头像 发表于 01-20 17:50 928次阅读
    在核桃派上实现USB摄像头的<b class='flag-5'>OpenCV</b><b class='flag-5'>颜色</b>检测

    【米尔-全志T113-i开发板试用】基础开发环境配置和opencv-mobile移植测试

    /highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> int main() { cv::Mat bgr = cv
    发表于 12-27 20:04