2017-11-20 5 views
1

Ich möchte ein RGB-Bild mit Kanälen aus verschiedenen Bildern komponieren.R Rasterband-Kombination zeigt nicht rgb

Ich habe die folgenden drei Quelldateien (.png) (Sentinel 2 Satellitenbilder)

blue band, red band, green band

Mit dem folgenden Code, ich versuche, das neue Bild zu bauen.

install.packages('raster') 
library('raster') 

red <- raster('C:/Users/xy/Desktop/red.png') 
green <- raster('C:/Users/xy/Desktop/green.png') 
blue <-raster('C:/Users/xy/Desktop/blue.png') 

s <- stack(blue,green,red) 
plotRGB(s, r=3, g=2, b=1) 

Die Grundidee ist: Nehmen Sie die erste Band aus jeder Png-Quelldatei. Zuordnung der Bänder zu R, G und B.

Dies ist das Ergebnis des Verfahrens. enter image description here

Aber das Ergebnis ist nicht das erwartete Echtfarbenbild:

expected result

ich schon mit viel erfahrener R-Anwender gesprochen. Alle gesagt, dass es sollte funktionieren, aber es funktioniert nicht :-(

Ich würde mich freuen, wenn jemand meine Fehler hinweisen könnte oder könnte eine Idee für eine Lösung.

+0

Ich sehe nicht viel Helligkeit in Ihrem grünen Band. Vielleicht müssen Sie eine bestimmte Gammakurve auf die Bänder anwenden. – dwilliss

+1

@dwilliss Vielen Dank, dass Sie darauf hingewiesen haben! Etwas worüber ich nachdenken muss! Vielleicht ist das erwartete Ergebnis nicht aus den Rohdaten zusammengesetzt ... mhh – Niklas

+0

könnte man 'plotRGB (s, r = 3, g = 2, b = 1, stretch =" lin ")' oder 'plotRGB (s, r = 3, g = 2, b = 1, stretch = "hist") ' – lbusett

Antwort

0

Soweit ich sehen kann, es funktioniert

Zoom Lassen sie uns in den Bereich mit Daten:.

e <- extent(c(95, 160, 0, 62)) 
s <- crop(s, e) 

Jetzt

plot(s) 
inspizieren

Und

pairs(s) 

Was Sie sehen, ist, dass die Werte in den drei Kanälen nahezu identisch sind. Wenn Sie in einem Pixel nahezu identische Werte für R, G und B haben, erhalten Sie eine graue Farbe (etwas zwischen Weiß und Schwarz). Das ist, was Sie bekommen, und das stimmt mit Ihren Daten überein. Es gibt wahrscheinlich ein Problem mit Ihren Daten.

+0

Vielen Dank für Ihre Zeit und teilen Sie Ihr Wissen! Derzeit denke ich auch, dass es eher ein Datenproblem ist. Ich werde in den nächsten Tagen in die Tiefe gehen und euch die Ergebnisse wissen lassen :) – Niklas