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

时间:2013-01-28 06:25:59

标签: opencv

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

提前致谢.......

3 个答案:

答案 0 :(得分:44)

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

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

答案 1 :(得分:6)

OpenCV读取BGR格式的图像(而不是RGB),因为在首次开发OpenCV时,BGR彩色格式在相机制造商和图像软件提供商中很流行。红色通道被认为是最不重要的颜色通道之一,因此在最后列出,许多位图使用BGR格式存储图像。但是,现在标准已经更改,大多数图像软件和相机都使用RGB格式,这就是为什么在程序中,最好先将BGR图像转换为RGB,然后再分析或处理任何图像。

答案 2 :(得分:0)

为什么?由于历史原因。 1987 年,Microsoft Windows 运行在 IBM PS/2 上,早期的 IBM video display controllerVGA,使用了 INMOS 171/176 RAMDAC chip,当图像存储在 BGR 中时,它更易于使用格式。

详情请见 Why BGR color order - Retrocomputing Stack Exchange