我有一个大陆的.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,所以我想将颜色方案从灰度更改为更轻的颜色。 我该怎么做?
答案 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...
波士顿冬季色图: