如何在 Matlab 中将 RGB 图像转换为二维图像
How to convert a RGB image to a two dimensional image in Matlab
我有一个名为 imrgb
的 RGB 图像,其大小为 320*512*3
。
我想知道如何将其转换为二维图像?
我看到了一些彩色图像,但它们仍然是二维的
三维的。谁能告诉我如何将其转换为
二维图像,但仍然看起来色彩缤纷?
如果我理解正确,您可以将图像数据存储为二维数组并使用颜色图为其分配颜色,将其显示为 "colorful" 图像。在这种情况下,颜色图将是一个 Nx3
数组,其中每一行对应于图像数据中存在(或不存在)的索引。因此,如果颜色图是一个 256x3 数组,例如,图像将由 0 到 255 范围内的索引组成。
例如,让我们考虑一下 Matlab 附带的 peppers.png 演示图像。让我们阅读并使用 rgb2ind
函数将图像数据存储在变量 X
中,并将其关联的颜色图存储在变量 map
.
中
a = imread('peppers.png');
[X,map] = rgb2ind(a,256);
如果我们询问 X
的大小,我们得到:
ans =
384 512
所以一个 2D 变量,即使原始图像 (a
) 是 3D (rgb)。
如果我们希望将此 2D 数据显示为彩色,我们需要提供合适的颜色图。例如,我们可以使用原始颜色图(存储在 map
中)以获得以下内容:
image(X)
colormap(map)
axis off
或者我们可以使用我们选择的任何其他颜色图。
例如:
image(X)
colormap(jet(200)) %// The size can be different than the original colormap
axis off
产量:
因此,正如您所见,图像看起来是 3D,但数据实际上是 2D。
这是你的意思吗?
我有一个名为 imrgb
的 RGB 图像,其大小为 320*512*3
。
我想知道如何将其转换为二维图像?
我看到了一些彩色图像,但它们仍然是二维的
三维的。谁能告诉我如何将其转换为
二维图像,但仍然看起来色彩缤纷?
如果我理解正确,您可以将图像数据存储为二维数组并使用颜色图为其分配颜色,将其显示为 "colorful" 图像。在这种情况下,颜色图将是一个 Nx3
数组,其中每一行对应于图像数据中存在(或不存在)的索引。因此,如果颜色图是一个 256x3 数组,例如,图像将由 0 到 255 范围内的索引组成。
例如,让我们考虑一下 Matlab 附带的 peppers.png 演示图像。让我们阅读并使用 rgb2ind
函数将图像数据存储在变量 X
中,并将其关联的颜色图存储在变量 map
.
a = imread('peppers.png');
[X,map] = rgb2ind(a,256);
如果我们询问 X
的大小,我们得到:
ans =
384 512
所以一个 2D 变量,即使原始图像 (a
) 是 3D (rgb)。
如果我们希望将此 2D 数据显示为彩色,我们需要提供合适的颜色图。例如,我们可以使用原始颜色图(存储在 map
中)以获得以下内容:
image(X)
colormap(map)
axis off
或者我们可以使用我们选择的任何其他颜色图。
例如:
image(X)
colormap(jet(200)) %// The size can be different than the original colormap
axis off
产量:
因此,正如您所见,图像看起来是 3D,但数据实际上是 2D。
这是你的意思吗?