MATLAB - Flächendarstellungen
Transcrição
MATLAB - Flächendarstellungen
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: z f ( x, y) oder Attribute: 1D-Attribute: (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 30 contour(Z); 25 20 Automatische Erzeugung der Isolinien an ganzzahligen Höhenwerten 15 10 5 5 MATLAB - Flächendarstellungen 10 15 20 25 30 10 1D: Höhendarstellung Darstellung von Höhenlinien (Isolinien) (2): Plot von 10 Höhenlinien 30 25 contour(Z,10); 20 15 automatische Aufteilung des Wertebereichs in 10 gleichabständige Höhenwerte 10 5 Plot von Höhenlinien an gewünschten Höhenwerten 5 10 15 20 25 30 5 10 15 20 25 30 30 25 20 contour(Z,-6:0.5:8); 15 10 Plot von Höhenlinie an jedem Wert im Vektor 5 MATLAB - Flächendarstellungen 11 1D: Höhendarstellung Darstellung von Höhenlinien (Isolinien) (3): Beschriftung von Höhenlinien c = contour(Z,-6:2:8); [c,h] = contour(Z,-6:2:8); clabel(c); clabel(c,h); 30 30 2 4 8 25 0 4 2 0 20 2 2 -2 20 8 6 4 2 6 4 25 6 15 0 0 10 2 2 2 2 -2 10 -2 0 5 -6 -2 -6 -4 -2 5 0 -4 -4 -2 0 15 0 -2 0 5 10 15 20 25 Kreuz mit Höhenwert 30 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 MATLAB - Flächendarstellungen 10 15 20 25 30 35 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 meshgrid erzeugt die Matrizen xx und yy mit den x- bzw. y- Koordinaten an den Gitterpunkten praktisch für koordinatenabhängige Berechnungen 50 quiver(xx,yy,gx,gy,3) plottet die Vektoren (gx,gy) an den Rasterpunkten (xx,yy) und skaliert den Vektor um Faktor 3 51 49 48 47 46 8 9 MATLAB - Flächendarstellungen 10 11 12 13 14 15 16 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 MATLAB - Flächendarstellungen 300 400 500 600 17 Bilddarstellung GW-Bild 50 Im = imread('TUM_gray.tif'); image(Im); colormap gray; 100 150 200 250 300 350 400 100 200 300 400 500 600 100 200 300 400 500 600 50 100 imagesc(Im); colormap gray; 150 200 250 300 350 400 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); 550 600 650 700 750 NB: Länge von x entspricht der Anzahl der Spalten von Im; 800 850 Länge von y entspricht der Anzahl der Zeilen von Im 900 1100 1200 1300 1400 1500 1600 1100 1200 1300 1400 1500 1600 900 850 800 imagesc(x,fliplr(y),Im); axis xy; 750 700 650 NB: Speichern von Bildern imwrite(Im,‘dateiname.jpg‘,‘jpg‘) 600 550 MATLAB - Flächendarstellungen 20 Übung: 09:45 – 11:30 Uhr MATLAB - Flächendarstellungen 21