2016-06-23 11 views
1

Ich bin mit einigen landsat TIFF-Dateien in Matlab arbeiten, und ich würde eine thermische Heatmap über Grundbilder für eine bestimmte Szene zu überlagern möge. Die Grundkarte ist ein Graustufenbild und für das Wärmebild verwende ich normalerweise eine Farbkarte des Jets mit einem begrenzten Anzeigebereich.Overlay zwei Bilder mit getrennten Farbtabellen

Zum Beispiel würde ich in der Regel zwei Figuren erstellen nebeneinander angezeigt werden:

figure 
    imshow(temp,[-2,2]) 
    colormap jet 

    figure 
    imshow(base) 

wo Temp ist eine MxN-Array die Temperaturdaten enthält, und die Basis ist ein MxN-Array enthält, das Basisbild.

würde ich es vorziehen, um die Temperatur zu haben das Basisbild in einer einzigen Figur überlagert, wie die unten. Jede Hilfe würde sehr geschätzt werden.

enter image description here

Antwort

0

Sie werden eher für Ihre Bilder verwenden wahre Farbe wollen, als auf der colormap verlassen. Sie können die Werte mithilfe von gray2ind und ind2rgb in die Colormap-Werte konvertieren.

% Just use grayscale for the base 
hbase = ind2rgb(gray2ind(base), gray); 

% Have the temperature use the builtin colormap 
hold on 
htemp = imshow(temp, [-2,2]); 
colormap jet 
+0

Danke, das funktioniert für die Anzeige, aber natürlich habe ich die reale Welt der Temperaturinformationen verloren und wenn ich Colorbar anrufe, bekomme ich den Bereich der Graustufenfarben. Gibt es eine Möglichkeit, das zu bewahren, damit ich einfach eine Farbleiste mit Temperaturen anzeigen kann? – Amie

+0

@Amie Ja, Sie wechseln nur, welche die wahren Farbwerte verwendet. Die Antwort wurde aktualisiert. – Suever

+0

Richtig, aber die wahren Farbwerte reichen von 0-255, so dass die Farbbalkenskala keine Temperaturwerte anzeigt. Gibt es eine Möglichkeit, die Farben auf die ursprünglichen Temperaturen zurückzuführen? – Amie