为什么OpenCV使用BGR颜色空间而不是RGB

Har*_*ris 38 opencv

任何人都可以解释为什么OpenCV使用BGR色彩空间而不是RGB.我们都知道RGB对于大多数计算机图形来说是方便的颜色模型,并且人类视觉系统的工作方式类似于RGB颜色空间.OpenCV BGR色彩空间背后有什么原因吗?

提前致谢.......

Dan*_*ues 47

"OpenCV的早期开发人员选择BGR颜色格式的原因可能是当时BGR颜色格式在相机制造商和软件供应商中很受欢迎.例如在Windows中,当使用COLORREF指定颜色值时,他们使用BGR格式0x00bbggrr.

BGR是出于历史原因而做出的选择,现在我们必须忍受它.换句话说,BGR是OpenCV的马屁."

  • http://meta.stackoverflow.com/questions/304126/is-it-correct-to-answer-copying-from-comments-by-other-users (4认同)
  • Windows 只能在小端机器上运行。0x00bbggrr 在内存中存储为 R、G、B。在我看来,OpenCV 的选择是基于一种误解。 (4认同)
  • @eugenhu 这是色谱上的顺序 (3认同)
  • 但这并不能解释为什么BGR首先如此流行。 (2认同)
  • 它引用自https://learnopencv.com/why-does-opencv-use-bgr-color-format。说明你的消息来源 (2认同)

小智 11

OpenCV 以 BGR 格式(而不是 RGB)读取图像,因为在 OpenCV 最初开发时,BGR 颜色格式在相机制造商和图像软件供应商中很流行。红色通道被认为是最不重要的颜色通道之一,因此列在最后,许多位图使用 BGR 格式存储图像。但是,现在标准发生了变化,大多数图像软件和相机都使用 RGB 格式,这就是为什么在程序中,在分析或处理任何图像之前先将 BGR 图像转换为 RGB 是一种很好的做法。


nea*_*mcb 6

为什么?由于历史原因。1987年,微软Windows运行在IBM PS/2上,早期的IBM视频显示控制器VGA使用了INMOS 171/176 RAMDAC芯片,当图像以BGR格式存储时更容易使用。

详细信息请参阅 为什么使用 BGR 颜色顺序