首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RGB图像的表示是什么?

RGB图像的表示是什么?
EN

Stack Overflow用户
提问于 2018-08-23 14:11:21
回答 3查看 8.9K关注 0票数 5

我已经开始学习图像处理,我被困在这里,请帮助我。

灰度图像用N矩阵表示,其中矩阵的每个元素的值为0,255,表示灰度值。

示例:

代码语言:javascript
复制
    row 1 : 2,120
    row 2 : 190, 40

这是2乘2矩阵,这是一幅灰色图像。

现在,我感到困惑,无法得到如何表示RGB图像,其中每个像素值或强度是三个值的混合。

定义上说,

RGB图像由My-N-by3阵列表示,其中每个3矢量对应于每个像素的红色、绿色和蓝色强度。

但我听不懂上面这句话。请帮我弄明白意思。

提前谢谢你。

EN

回答 3

Stack Overflow用户

发布于 2020-07-15 11:22:58

灰度图像中,每个像素可以用一个数字表示,该数字通常在0到255之间。此值决定像素显示的黑暗程度(例如,0为黑色,255为亮白色)。

彩色图像中,每个像素可以表示为三个主要颜色通道:红色、绿色和蓝色的三个数字向量(每个数字从0到255)。这三个红色、绿色和蓝色(RGB)值一起用于决定该像素的颜色。例如,紫色可以表示为128,0,128 (中等强度的红色和蓝色的混合,没有绿色)。

现在,我将以你们为例,给你们一个关于这个定义的理解。

假设是2乘2矩阵的彩色图像:

row1:绿色,蓝色

row2:红色,黑色

如果我用RGB值表示上述颜色:

row1: 0,255,0,0,0,255

row2: 255,0,0,0,0,0,0

因此,M N 3描述了M是矩阵的行数,N是矩阵的列数,3是表示RGB值的向量的大小。这里是像素网格中的RGB表示。

票数 4
EN

Stack Overflow用户

发布于 2018-08-23 15:48:50

从概念上讲,M-by-N RGB图像是一个二维矩阵,其中每个矩阵元素是一个具有3个值的向量。

在物理内存中有许多不同的表示方法。例如:

  1. 使用MxN数组,其中每个元素都是24位整数。每个整数由红色、绿色和蓝色的值(每个8位整数)组成,例如:red<<16 | green<<8 | blue (或等效的red*256*256 + green*256 + blue)。
  2. 使用3个单独的MxN阵列,每个颜色通道一个。
  3. 使用MxNx3数组,其中第3维是“颜色维度”。您可以将其索引为img[i,j,k]k为0、1或2。因此,一个像素由3个数组元素组成。

最后一种格式是问题中描述的格式。这样的3D数组通常被实现为一维数组,索引转换如下:

代码语言:javascript
复制
index = i + j * M + k * N*M;

或者这样说:

代码语言:javascript
复制
index = i * N*3 + j * 3 + k;

或者以另一种不同的顺序,这并不重要(这里我们假设基于0的索引)。因此,数组有M*N*3元素,其中三个元素共同表示一个像素。

票数 1
EN

Stack Overflow用户

发布于 2018-08-23 14:38:41

(A)RGB像素通常保存为中间格(32位)。因此,每个通道用8位表示(给出介于0到255之间的范围)。数字的前8位(32-24)代表alpha通道,接下来的8位代表红色通道(24-16),接下来的8位代表绿色通道(16-8),最后8位代表蓝色通道。因此,数组中的每个数字实际上代表了各自颜色通道的透明度(alpha)和3个强度值,因此也可以看作是一个向量。M-by-N-by3描述一个包含每个像素的向量(整数)的MxN矩阵来描述其颜色。

定义进一步使您了解如何在三维空间中绘制/查看像素值。想象一个三维图,其中每个轴代表一个颜色通道。当您在图表中添加特定颜色时,您会得到什么?一个向量,它描述颜色在来自原点的三维空间中的位置!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51987844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档