61

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

4

3 回答 3

76

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

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

于 2015-11-18T18:28:31.220 回答
12

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

于 2020-01-22T01:41:36.150 回答
4

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

请参阅 Why BGR color order

于 2021-02-15T21:07:53.620 回答