计算机RGB颜色系统是否有16M种颜色,每种颜色占用24个字节?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机RGB颜色系统是否有16M种颜色,每种颜色占用24个字节?相关的知识,希望对你有一定的参考价值。

000000~ffffff
16进制
16*16*16*16*16*16=16777216
16777216/1024/1024=16M种颜色
二进制
一位十六进制转换四位二进制
六位就是24位
24个0~24个1
16进制的rgb每种颜色对应24个二进制位(bit),也就是3字节(byte)
两个十六进制位占据一个字节,class字节码文件打开就是两个十六进制表示一个字节的
参考技术A 正常的 RGB 颜色的有效范围,是从 0 到 16,777,215 (0xFFFFFF)。每种颜色的设置值都是一个四字节的整数。对于这个范围内的数,其高字节都是 0,而低三个字节,从最低字节到第三个字节,分别定义了红、绿、蓝三种颜色的值。红、绿、蓝三种成分都...追问

如果用二进制是不是24位表示一种颜色,十六进制表示一种颜色

OpenCV:如何为每个像素填充具有每种 RGB 颜色值的 rgb 图像?

【中文标题】OpenCV:如何为每个像素填充具有每种 RGB 颜色值的 rgb 图像?【英文标题】:OpenCV: how to fill rgb image having values for each of RGB colors for each pixel? 【发布时间】:2010-11-19 21:04:42 【问题描述】:

那么有 RGBRGBRGB...大小为 w*3 的缓冲区如何用这些数据填充 OpenCV 图像?

【问题讨论】:

【参考方案1】:

最简单的方法是使用 at templated method 循环遍历缓冲区的元素。

unsigned char buffer[] = 1, 2, 3, ..., 18; // RGBRGB...
cv::Mat image(2, 3);
for (int i = 0; i < 18; ++i) 
  int row = i/9;
  int col = (i/3)%3;
  int rgb = i%3; // An index 
  image.at<unsigned char>(row,col+rgb) = buffer[i];

当然,你需要用正确的类型初始化你的矩阵,并设置颜色格式,这是我上面没有做的。详细了解 OpenCV 矩阵对象here。

【讨论】:

【参考方案2】:

IplImage 有一个变量 imageData。它只是一个缓冲区。因此,如果它与 imageData 缓冲区具有相同的格式,您可以简单地复制您的数组。如果格式不同,则可以复制,但需要正确填写 IplImage 的其他变量。

【讨论】:

以上是关于计算机RGB颜色系统是否有16M种颜色,每种颜色占用24个字节?的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV:如何为每个像素填充具有每种 RGB 颜色值的 rgb 图像?

如何为任何给定的 RGB 背光颜色找到完美的文本颜色 [重复]

颜色模型

在 PHP 中生成 RGB 渐变颜色的算法

多媒体编程基础之RGB和YUV

3 颜色