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

Why OpenCV using BGR colour space instead of RGB. We all know that RGB is the convenient colour model for most of the computer graphics and also the human visual system works in a way that is similar to a RGB colour space. Is there any reason behind OpenCV BGR colour space?.

38363 次浏览

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

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

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

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

详情请浏览 为什么 BGR 颜色顺序-回溯计算堆栈交换