我有一个名为imrgb
的RGB图像,其大小为320*512*3
。
我想知道如何将其转换为二维图像?
我看到了一些彩色图像,但它们仍然是二维的
三维的。任何人都可以告诉我如何将其转换为
二维图像,但看起来仍然丰富多彩?
答案 0 :(得分:5)
如果我理解正确,您可以将图像数据存储为2D数组,并使用色彩图为其指定颜色,将其显示为"色彩鲜艳的"图片。在这种情况下,色图将是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时。
这是你的意思吗?