colors - BGR 色彩空间到底是什么?

标签 colors opencv color-space

RGB 颜色由三个分量组成:红色 (0-255)、绿色 (0-255) 和蓝色 (0-255)。

BGR 色彩空间到底是什么?它与 RGB 色彩空间有何不同?

最佳答案

关于字节顺序

RGB 是一个字节顺序。但是,大多数原始图形库的一个有意的实现选择是,它们在内部将颜色视为无符号 32 位整数,并将三个(或四个,因为通常包含 alpha)组件打包到整数中。

在小端机器(例如 x86)上,整数 0x01020304 实际上将作为 0x04030201 存储在内存中。因此 0x00BBGGRR 将存储为 0xRRGGBB00!

因此,术语 BGR(和 BGRA 等)是一个有漏洞的抽象概念,其中图形库解释了整数的逻辑排序方式,从而使直接单独访问颜色分量的代码更具可读性。

请记住,位图通常由比处理器更多的硬件部分访问,并且由传统显示适配器指定的字节序不一定与 CPU 的字节序相同。在操纵像素中的 channel 的级别上,CPU 可以毫无问题地提取字段,无论它们的顺序如何;它纯粹是一个程序员理解标签的事情。

关于colors - BGR 色彩空间到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/367449/

相关文章:

r - 向 R 中的等高线图添加颜色键

android:动画颜色从颜色到颜色变化

video - 为什么 ffmpeg 中的位移复杂滤波器对 Cb 和 Cr 平面的位移与 lum 不同?

android - 位图到垫子?安卓opencv

java - OpenCV + Android : how to access the camera in JavaCameraView

python - 将 RGB 图像转换为 LAB 图像时出现意外输出

python - 使用 python 转换图像 RGB->Lab

javascript - Chart.js 多色填充部分

css - 鼠标悬停拾色器时更改产品颜色

opencv - 为什么按该顺序应用横滚俯仰和偏航?