2016-08-22 43 views
0

我有一個表示海拔的陸地.tif文件。我想用顏色斜坡來顯示這個柵格,而不是灰度斜坡。我將如何在Matlab中做到這一點?如何在Matlab中以彩色顯示灰度柵格?

我看着使用所述TIFF相關聯的信息:

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

其表示在標題「ColourType」爲「灰度」。我試圖將其改爲'冬季'(matlabs內置色彩方案之一),但它沒有任何區別。

目前我使用下面的命令來顯示TIFF:

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

所有較高的地區是白色的,其他的都是黑色的......即使周圍的陸地(我想我可以有削減/掩蓋大陸出來擺脫)。 所有的黑色都讓我很難在tiff頂部顯示其他形狀文件,所以我想將顏色方案從灰度更改爲更輕的東西。 我該怎麼做?

回答

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

+0

@ Rotem公司這是有道理的,你的解決方案完美的作品。在附註中,在使用mapshow命令並獲取圖像的gca之後,必須在執行任何其他命令之前關閉圖像。否則,顯示器將被旋轉。正如我所說,一旦原始圖像在用'imshow(J)'命令重新顯示之前關閉,沒有任何東西被旋轉。非常感謝。 – new2matlab

+0

對不起@ Rotem ..我以爲我接受了它。現在完成了。我實際上有這條路線的後續問題。我現在無法在landmass.tif頂部繪製任何形狀文件,因爲技術上,我不再將其顯示爲地圖...所以空間參考丟失了。你知道一種方法,我可以改變tiff的顏色方案,仍然把它當作地圖嗎?即。使用mapshow顯示它? – new2matlab

+0

我認爲你需要在地圖上完成所有工作,並在最後階段將其轉換爲圖像(顯示之前)。當我已經使用colormap時,也可以使用'mapshow(I,R);'。 – Rotem

相關問題