繁体   English   中英

RGB图像的表示是什么?

[英]What is the representation of RGB image?

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

灰度图像由 M 和 N 矩阵表示,其中矩阵的每个元素的值为 [0,255],表示强度。

例子:

    row 1 : 2,120
    row 2 : 190, 40

这是一个 2 x 2 的矩阵,它是一个灰度图像。

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

定义说,

RGB 图像用 M×N×3 阵列表示,其中每个 3 向量对应于每个像素的红色、绿色和蓝色强度。

但我无法理解上面的句子。 请帮我理解意思。

先感谢您。

灰度图像中,每个像素都可以用单个数字表示,该数字的范围通常为 0 到 255。该值决定了像素显示的暗度(例如,0 是黑色,而 255 是亮白色)。

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

现在我将以你的例子来让你理解给定的定义。

假设一个 2 x 2 矩阵的彩色图像:

第 1 行:绿色、蓝色

row2:红色,黑色

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

第 1 行:[0,255,0],[0,0,255]

第 2 行:[255,0,0],[0,0,0]

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

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

您可以通过多种不同的方式在物理内存中表示这一点。 例如:

  1. 使用 MxN 数组,其中每个元素都是 24 位整数。 每个整数由红色、绿色和蓝色值(每个 8 位整数)组成,例如: red<<16 | green<<8 | blue red<<16 | green<<8 | blue red<<16 | green<<8 | blue (或等效的red*256*256 + green*256 + blue )。

  2. 使用 3 个独立的 MxN 阵列,每个颜色通道一个。

  3. 使用 MxNx3 数组,其中第三个维度是“颜色维度”。 您可以将其索引为img[i,j,k]k为 0、1 或 2。因此,一个像素由 3 个数组元素组成。

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

index = i + j * M + k * N*M;

或者像这样:

index = i * N*3 + j * 3 + k;

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM