Ang*_*aby 1 matlab image image-processing vision computer-vision
我有一个名为RGB的图像imrgb,其大小为320*512*3.我想知道如何将其转换为二维图像?
我看到了一些彩色图像,但它们仍然是二维而不是三维.任何人都可以告诉我如何将其转换为二维图像,但仍然看起来多彩?

如果我理解正确,您可以将图像数据存储为2D阵列,并使用色彩图为其指定颜色,将其显示为"彩色"图像.在这种情况下,色彩图将是一个Nx3数组,其中每一行对应于图像数据中存在(或不存在)的索引.因此,如果色图是256x3阵列,则图像将由0到255之间的索引组成.
例如,让我们考虑一下Matlab附带的peppers.png演示图像.让我们阅读并使用该rgb2ind函数将图像数据存储在变量中,X并将其关联的色图存储在变量中map.
a = imread('peppers.png');
[X,map] = rgb2ind(a,256);
Run Code Online (Sandbox Code Playgroud)
如果我们问大小X,我们得到:
ans =
384 512
Run Code Online (Sandbox Code Playgroud)
所以2D变量,即使原始图像(a)是3D(rgb).
如果我们希望将这些2D数据显示为彩色,我们需要提供合适的色彩图.例如,我们可以使用原始色彩图(存储在其中map)以获得以下内容:
image(X)
colormap(map)
axis off
Run Code Online (Sandbox Code Playgroud)

或者我们可以使用我们选择的任何其他色彩图.
例如:
image(X)
colormap(jet(200)) %// The size can be different than the original colormap
axis off
Run Code Online (Sandbox Code Playgroud)
收益:

因此,当您看到图像看起来是3D但数据实际上是2D.
这是你的意思吗?