MATLAB Flächendarstellungen Einführung in Matlab 3. Semester Wintersemester 2012/2013 3. Themenblock MATLAB - Flächendarstellungen 1
Allgemeines Flächendarstellungen: graphische Darstellung von Flächendaten Flächendaten: Jeder Punkt eines 2D-Koordinatenrasters (x, y) besitzt ein Attribut in Abhängigkeit von x und y Funktion: oder Attribute: 1D-Attribute: z f ( x, y) ( u, v) f ( x, y) Höhe: u.a. für Gelände- oder Oberflächenmodelle Temperatur: Kartierung von Wärmequellen Grauwert: digitale Bilder 2D-Attribute: Geschwindigkeitsvektor: z.b. für Deformationsdarstellung Steigungen: z.b. für Abflussmodelle in einem DGM MATLAB - Flächendarstellungen 2
1D: Höhendarstellung 3D-Drahtgitter: Befehl mesh Verbindet je zwei benachbarte Gitterpunkte Farbkodierung in Abhängigkeit vom Wert Z = peaks(31); mesh(z); NB: peaks(31) erzeugt Matrix Z der Größe 31x31 mit Beispielwerten MATLAB - Flächendarstellungen 3
1D: Höhendarstellung 3D-Fläche: Befehl surf Fläche innerhalb von 4 Punkten erhält farbliche Kodierung surf(z); x = 9:0.2:15; y = 47:0.2:53; surf(x,y,z); NB: die Längen der Vektoren x und y müssen den Dimensionen von Z entsprechen! MATLAB - Flächendarstellungen 4
1D: Höhendarstellung Schachbrettdarstellung: Befehl pcolor Pseudo-Farbdarstellung Wie surf, nur zweidimensional pcolor(x,y,z); MATLAB - Flächendarstellungen 5
1D: Höhendarstellung Farbanpassungen (1): colormap: Veränderung der Farbskala jet (default): von blau nach rot gray: Grauwertskala, ideal für GW-Bilder hsv: Farbkreis, Minimum hat gleichen Farbwert wie Maximum (z.b. für Darstellung von Winkelwerten) weitere Farbskalen: hot, cool, copper, pink, bone, u.a. (siehe help hsv) pcolor(x,y,z); colormap gray; MATLAB - Flächendarstellungen 6
1D: Höhendarstellung Farbanpassungen (2): colormapeditor: manuelle Colormap-Anpassung in GUI Direktwahl aller standard-colormaps Einfügen/Löschen von Markern Verschieben/Farbänderung von Markern Live-Vorschau im Figure Min/Max-Wahl MATLAB - Flächendarstellungen 7
1D: Höhendarstellung Farbanpassungen (3): caxis: manuelle Pseudocolor Skalierung Häufiger Fall: Ausreißer in Daten Zuweisung von caxis([cmin cmax]) auf colormap-maxima Beispiel: Z = peaks(31); mit Z(24,16)=20; (vorher: 8.1) surf(z); surf(z); caxis([-6.5 8.1]) MATLAB - Flächendarstellungen 8
1D: Höhendarstellung Farbanpassungen (4): shading: Anpassung der Farbdarstellung faceted (default): jede Linie bzw. Fläche hat eine Farbe bei surf und pcolor werden die Gitterlinien schwarz angezeigt flat: wie faceted, nur ohne Gitterlinien interp: Farben von Linien und Flächen erhalten interpolierten Farbverlauf pcolor(x,y,z); shading interp; colorbar; NB: colorbar zeichnet einen Balken mit der Farbskala MATLAB - Flächendarstellungen 9
1D: Höhendarstellung Darstellung von Höhenlinien (Isolinien) (1): Befehl contour: Plot von Höhenlinien Linien gleichen Höhenwertes contour(z); 30 25 Automatische Erzeugung der Isolinien an ganzzahligen Höhenwerten 20 15 10 5 5 10 15 20 25 30 MATLAB - Flächendarstellungen 10
1D: Höhendarstellung Darstellung von Höhenlinien (Isolinien) (2): Plot von 10 Höhenlinien 30 contour(z,10); 25 20 automatische Aufteilung des Wertebereichs in 10 gleichabständige Höhenwerte 15 10 5 5 10 15 20 25 30 Plot von Höhenlinien an gewünschten Höhenwerten contour(z,-6:0.5:8); 30 25 20 15 10 Plot von Höhenlinie an jedem Wert im Vektor 5 5 10 15 20 25 30 MATLAB - Flächendarstellungen 11
1D: Höhendarstellung Darstellung von Höhenlinien (Isolinien) (3): Beschriftung von Höhenlinien c = contour(z,-6:2:8); clabel(c); [c,h] = contour(z,-6:2:8); clabel(c,h); 30 30 2 25 20 2 8 6 4 25 20 0 2 0 4 4 6 6 8 2 4 2 15-2 0 15-2 -2 2 2 10 5 2-4 -2 0-6 10 5 0 2 0-2 -4-2 -6-4 -2 0 0 5 10 15 20 25 30 Kreuz mit Höhenwert 0 5 10 15 20 25 30 Höhenwert auf der Linie MATLAB - Flächendarstellungen 12
2D: Vektordarstellung Befehl quiver Darstellung von gerichteten Vektoren Ursprung des Vektors im Rasterpunkt 35 Z = peaks(31); [gx,gy] = gradient(z); quiver(gx,gy); 30 25 20 15 NB: gradient erzeugt die partiellen Gradienten (Steigungen, Ableitungen) in x-richtung (gx) und y-richtung (gy) in jedem Gitterpunkt 10 5 0 0 5 10 15 20 25 30 35 MATLAB - Flächendarstellungen 13
2D: Vektordarstellung x = 9:0.2:15; y = 47:0.2:53; [gx,gy] = gradient(z,0.2,0.2); [xx,yy] = meshgrid(x,y); quiver(xx,yy,gx,gy,3); 53 NB: gradient(z, 0.2, 0.2) setzt für die Steigungsberechnung den Punktabstand in x- bzw. y-richtung jeweils auf 0.2 52 51 meshgrid erzeugt die Matrizen xx und yy mit den x- bzw. y- Koordinaten an den Gitterpunkten praktisch für koordinatenabhängige Berechnungen quiver(xx,yy,gx,gy,3) plottet die Vektoren (gx,gy) an den Rasterpunkten (xx,yy) und skaliert den Vektor um Faktor 3 50 49 48 47 46 8 9 10 11 12 13 14 15 16 MATLAB - Flächendarstellungen 14
Kombination von Darstellungen Z = peaks(31); x = 9:0.2:15; y = 47:0.2:53; pcolor(x,y,z); shading interp; xlabel('länge [ ]') ylabel('breite [ ]') title('höhe [m]') hold on; [c,h] = contour(x,y,z,-6:2:8,'k'); clabel(c,h); [dx,dy] = gradient(z,0.2,0.2); [xx,yy] = meshgrid(x,y); quiver(xx,yy,dx,dy,'k'); title('höhe mit Steigungen') MATLAB - Flächendarstellungen 15
Bilddarstellung Einlesen eines Bildes als Variable mit imread: Im = imread('filename.ext'); Größe von Im: r x c x n r: Anzahl Zeilen c: Anzahl Spalten n: Anzahl Kanäle 1 für GW-Bilder 3 für Farbbilder, je 1 rxc-matrix pro Farbkanal (RGB) Darstellung: image imagesc Skaliert die Farbskala auf den Wertebereich des Bildes MATLAB - Flächendarstellungen 16
Bilddarstellung Beispiele: Farbbild Im = imread('tum_color.tif'); image(im); 50 100 150 200 250 300 350 400 100 200 300 400 500 600 MATLAB - Flächendarstellungen 17
Bilddarstellung GW-Bild Im = imread('tum_gray.tif'); image(im); colormap gray; 50 100 150 200 250 300 350 400 100 200 300 400 500 600 50 100 imagesc(im); colormap gray; 150 200 250 300 350 400 100 200 300 400 500 600 MATLAB - Flächendarstellungen 18
Bilddarstellung Achsen: Bildkoordinatensystem: In der Bildverarbeitung: wie Matrix-Index (Zeile, Spalte) Zeile (row) von oben nach unten Spalte (column) von links nach rechts Modifizierte Achsenskalierung und beschriftung: Beschriftung der x-achse (c-achse) von links nach rechts Beschriftung der y-achse (r-achse) von oben nach unten NB: Soll die y-achse aufsteigende Werte von unten nach oben erhalten (z.b. zur Angabe von GK-Koordinaten), muss der Vektor y z.b. mit fliplr(y) umgekehrt und anschließend die y-achse mit axis xy gekippt werden MATLAB - Flächendarstellungen 19
Bilddarstellung x = 1001:1000+size(Im,2); y = 501:500+size(Im,1); imagesc(x,y,im); NB: Länge von x entspricht der Anzahl der Spalten von Im; Länge von y entspricht der Anzahl der Zeilen von Im 550 600 650 700 750 800 850 900 1100 1200 1300 1400 1500 1600 900 850 imagesc(x,fliplr(y),im); axis xy; NB: Speichern von Bildern imwrite(im, dateiname.jpg, jpg ) 800 750 700 650 600 550 1100 1200 1300 1400 1500 1600 MATLAB - Flächendarstellungen 20
Übung: 09:45 11:30 Uhr MATLAB - Flächendarstellungen 21