如何在Matlab中将RGB图像转换为二维图像

Ang*_*aby 1 matlab image image-processing vision computer-vision

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

在此输入图像描述

Ben*_*_11 5

如果我理解正确,您可以将图像数据存储为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.

这是你的意思吗?