如何在 Matlab 中显示彩色灰度栅格?

How can I display a grayscale raster in color in Matlab?

我有一个表示高程的陆地的 .tif 文件。我想用颜色渐变而不是灰度渐变来显示此栅格。我将如何在 Matlab 中执行此操作?

我查看了与 tiff 相关的信息:

[Z, R] = geotiffread('Landmass.tif')

表示标题 'ColourType' 为 'grayscale'。我试图将其更改为 'winter'(matlabs in-built 配色方案之一),但没有任何区别。

目前我正在使用以下命令来显示 tiff:

[Z, R] = geotiffread('Landmass.tif');
e=uint8(Z);
mapshow(e,R);

所有较高的区域都是白色的,其他地方都是黑色的……甚至在陆地周围也是如此(我想我可能不得不 cut/mask 陆地才能摆脱)。 所有的黑色都让我很难在 tiff 上显示其他形状文件,所以我想将配色方案从灰度更改为更亮的颜色。 我该怎么做?

colormap winter 不起作用的原因是因为 mapshow(e,R); 的输出是 RGB 图像格式。
即使显示的图像是灰色的,它实际上是 RGB,当每个像素 r=g=b 时。
我以 Matlab mapshow 为例,将 boston 图像转换为灰度,并使用 mapshow.
对于使用 colormap winter,我使用 getimage 获取图像,使用 rgb2gray 将其转换为灰度,然后 colormap winter 在显示图像时起作用。

检查以下示例:

[boston, R] = geotiffread('boston.tif');
boston = rgb2gray(boston); %Convert to Grayscale for testing.
figure
mapshow(boston, R);
axis image off

%Get image data, note: size of I is 2881x4481x3 (I is not in Grayscale format).
I = getimage(gca);

%Convert I from RGB (R=G=B) formtat to Grayscale foramt, note: size of J is
%2881x4481 (J is Grayscale format).

%%%%%%%Avoid image being rotated%%%%%%%%%%%%%
        %Close old image and open new figure
close Figure 1
    Figure
J = rgb2gray(I);

imshow(J);
colormap winter %Now it's working...

具有冬季色彩图的波士顿: