为什么OpenCV
使用BGR
颜色空间而不是RGB
.我们都知道RGB
是大多数计算机图形的方便颜色模型,人类视觉系统的工作方式类似于RGB
色彩空间。色彩空间背后有什么原因OpenCV
BGR
?
"OpenCV的早期开发人员选择BGR颜色格式的原因可能是当时BGR颜色格式在相机制造商和软件提供商中很受欢迎。例如,在Windows中,当使用COLORREF指定颜色值时,它们使用BGR格式0x00bbggrr。
BGR是出于历史原因做出的选择,现在我们必须忍受它。换句话说,BGR是OpenCV中的马屁股。
OpenCV以BGR格式(而不是RGB)读取图像,因为当OpenCV首次开发时,BGR颜色格式在相机制造商和图像软件提供商中很受欢迎。红色通道被认为是最不重要的颜色通道之一,因此列在最后,许多位图使用 BGR 格式进行图像存储。但是,现在标准已经改变,大多数图像软件和相机都使用RGB格式,这就是为什么在程序中,在分析或操作任何图像之前首先将BGR图像转换为RGB是一种很好的做法。
为什么?出于历史原因。1987年,Microsoft Windows运行在IBM PS/2上,早期的IBM视频显示控制器VGA使用了INMOS 171/176 RAMDAC芯片,当图像以BGR格式存储时,该芯片更容易使用。
详情见为什么选择 BGR 颜色顺序 - 逆向计算堆栈交换