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

时间:2016-08-22 16:45:51

标签: matlab colors tiff raster

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

我使用以下方式查看了与tiff相关的信息:

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

表示标题' ColourType' as'灰度'我试着将其改为“冬天”。 (matlabs内置配色方案之一),但它没有任何区别。

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

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

所有较高的区域都是白色的,其他一切都是黑色的......甚至在大陆周围(我认为我可能不得不切割/掩盖大陆以摆脱)。 所有的黑色都让我很难在tiff上面显示其他的shapefile,所以我想将颜色方案从灰度更改为更轻的颜色。 我该怎么做?

1 个答案:

答案 0 :(得分:1)

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...

波士顿冬季色图:

enter image description here