07.12.2012 Aufrufe

Erdfernerkundung - Numerische Physik: Modellierung

Erdfernerkundung - Numerische Physik: Modellierung

Erdfernerkundung - Numerische Physik: Modellierung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

9.2. BILDER IN MATLAB 371<br />

>> P4rgb = cat(3,P4,P4,P4);<br />

Abbildung 9.3: (Links:) Original<br />

der Helligkeitswerte von<br />

band 4; (rechts:) mit cat und<br />

image erzeugtes RGB-Bild in<br />

S/W<br />

Das Resultat ist im rechten Teil von Abb. 9.3 gegeben; der linke Teil zeigt zum Vergleich das<br />

‘Original’.<br />

9.2.2 Zerfleddern kombinierter Kanäle<br />

§ 1192 Beim Spiel mit normalen Photos, wie z.B. in Abb. 3.23 und 3.24, ist der Ausgang<br />

bereits ein Farbphoto – das Helligkeitsmuster liegt in drei Kanälen vor. Daher müssen wir<br />

vor einer weiteren Bearbeitung die Kanäle trennen. Als erstes schreiben wir inpig.jpg wieder<br />

in die Variable PIG und holen uns aus dem Workspace die Information über das Format.<br />

Nehmen wir kombi321 als Beispiel und lesen mit imread ein, so ist PIG ein dreidimensionales<br />

Array mit dem Format 850 × 1100 × 3.<br />

§ 1193 Aus diesem Array lassen sich die einzelnen Kanäle extrahieren; in einer vielleicht<br />

etwas aufwendigen expliziten Form (alternativ mit For-Schleife und Index) als<br />

>> KRED(:,:)=kombi321(:,:,1); ←↪<br />

>> KGREEN(:,:)=kombi321(:,:,2); ←↪<br />

>> KBLUE(:,:)=kombi321(:,:,3); ←↪<br />

Damit sollten wir wieder die Ausgangskanäle erhalten haben: die Differenz KRED-P3 sollte<br />

also verschwinden. Davon können wir uns z.B. mit der Sequenz<br />

>>maximum=max(max(diff(KRED-P3)))<br />

überzeugen.<br />

9.2.3 Histogramme<br />

§ 1194 Histogramme erstellt MatLab mit Hilfe des Befehls hist automatisch. Allerdings<br />

sollten wir hist nicht auf ein Bild in voller Schönheit anwenden: MatLab verlangt als Eingabe<br />

für hist einen Vektor oder eine Matrix; ein dreidimensionales Array ist nicht vorgesehen.<br />

Allerdings interessieren die Histogramme auch nur für einzelne Kanäle, d.h. die Eingangsgröße<br />

in hist ist eine Matrix.<br />

§ 1195 Auf eine Matrix angewendet liefert hist für jede Spalte der Matrix ein Histogramm.<br />

Um das Histogramm aller Helligkeitswerte der Matrix zu erhalten, formen wir diese mit<br />

reshape um:<br />

>> LP1=reshape(P1(:,:),[],1);<br />

Auf diese Weise wird aus der 850 × 1100-Matrix ein 935000 × 1 Vektor erzeugt. Der Datentyp<br />

wird dabei nicht verändert, d.h. die Elemente des Vektors sind weiterhin vom Typ uint8.<br />

§ 1196 Zum weiteren Rechnen ist uint8 (ebenso wie auch uint16) aus zwei Gründen unpraktisch:<br />

• MatLab kann intern nicht jedes Format mit jedem anderen kombinieren. So lässt sich z.B.<br />

hist nicht auf uint8-Größen anwenden.<br />

c○ M.-B. Kallenrode 2. Juli 2008

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!