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

    文章

    820

    浏览量

    61526
  • OpenCV
    +关注

    关注

    33

    文章

    651

    浏览量

    44427

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    N9H20如何将颜色格式从 RGB565 更改为 RGB888?

    N9H20如何将颜色格式从 RGB565 更改为 RGB888?
    发表于 09-05 06:06

    如何使用 Arm Helium 进行颜色格式转换和功能验证?

    使用 Arm Helium 进行颜色格式转换和功能验证
    发表于 08-19 06:52

    零成本钢铁侠手套!树莓派+OpenCV 秒变手势遥控器!

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-16 16:16 893次阅读
    零成本钢铁侠手套!树莓派+<b class='flag-5'>OpenCV</b> 秒变手势遥控器!

    如何使用树莓派与OpenCV实现面部和运动追踪的云台系统?

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-14 17:45 976次阅读
    如何使用树莓派与<b class='flag-5'>OpenCV</b>实现面部和运动追踪的云台系统?

    如何使用树莓派+OpenCV实现姿态估计和面部特征点追踪?

    大家好,这是一个树莓派和OpenCV的连载专题。使用树莓派与OpenCV实现姿态估计和面部特征点追踪使用树莓派与OpenCV实现面部和运动追踪的云台系统使用树莓派和OpenCV实现手部
    的头像 发表于 08-13 17:44 981次阅读
    如何使用树莓派+<b class='flag-5'>OpenCV</b>实现姿态估计和面部特征点追踪?

    【GM-3568JHF开发板免费体验】OpenCV 视频目标跟踪 ( CamShift)

    一、基本理论 在计算机视觉领域,视频目标跟踪是一个非常重要的任务。视频目标跟踪广泛应用于监控、自动驾驶、人机交互等多个领域。OpenCV 提供了多种目标跟踪算法,其中 MeanShift
    发表于 08-09 13:19

    【Milk-V Duo S 开发板免费体验】SDK编译、人脸检测、OpenCV测试

    ;opencv2/imgproc/imgproc.hpp> int main() { cv::Mat bgr = cv::imread(\"in.jpg\", 1
    发表于 07-11 13:48

    基于LockAI视觉识别模块:C++使用图像的统计信息

    ::COLOR_BayerBG2BGR 将 Bayer 格式图像转换为 BGR 图像 BGR ↔ RGBA cv::COLOR_BGR2RG
    发表于 05-08 10:31

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

    摄像头)1、安装python3-opencvaptinstallpython3-opencv(左右移动查看全部内容)2、查看摄像头支持的格式与分辨率root@debi
    的头像 发表于 04-15 11:51 650次阅读
    如何用<b class='flag-5'>OpenCV</b>的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板

    为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 1615次阅读