Einführung in Visual Computing Einführung in MATLAB Sebastian Zambanini Computer Vision Lab Institut f. Rechnergestützte Automation TU Wien
Überblick Allgemeines Arbeiten mit MATLAB Dateneingabe Vektoren und Matrizen Programme schreiben in MATLAB Visualisierung/Bilder Häufige Probleme, Tipps & Tricks 2 Sebastian Zambanini - EVC - MATLAB Einführung
MATLAB-Übungen Benötigte Tools für die Übung: MATLAB und Blender Blender-Einführung morgen (11.3.2015) Angaben für MATLAB-Einführungs- beispiel ab heute (15 Uhr) verfügbar 4 Teile Basics Triangles Images Transformations Weitere Aufgaben im Laufe des Semesters, die mithilfe von MATLAB zu lösen sind (Kamerasensoren,…) 3 Sebastian Zambanini - EVC - MATLAB Einführung
Was ist MATLAB? MATLAB = MAT rix LAB oratory Software zur numerischen Berechnung mathematischer Probleme Gegenstück: Mathematica, Maple für symbolische Algebra Alternativen: eigentlich keine wg. des Umfangs Freier MATLAB-Klon: Octave (für die Übung nicht zu empfehlen, Octave-Lösungen werden nicht akzeptiert) Hersteller: The MathWorks Inc. aktuelle Version 8.4 (R2014b) Viele Toolboxen für verschiedenste Anwendungsbereiche Signalverarbeitung, Bildverarbeitung, Finanzmathematik, … Proprietäre Programmiersprache 4 Sebastian Zambanini - EVC - MATLAB Einführung
Was ist MATLAB? Vorteile Interpreter und interaktive Befehlseingabe: Schnelle und einfache Entwicklung von Programmen ( Rapid Prototyping ) Gutes Hilfesystem Sehr umfangreich und mächtig dank zahlreicher Toolboxen Erweiterbarkeit: C oder FORTRAN Code durch mex-Bibliotheken Grafische Ausgaben: Bilder, 3D Plots,…. Nachteile Nicht frei verfügbar Durch Interpretersprache vergleichsweise langsame Ausführung von Programmen 5 Sebastian Zambanini - EVC - MATLAB Einführung
Warum soll ich MATLAB erlernen? Um die LVA zu bestehen ;-) MATLAB kann für verschiedene Gebiete verwendet werden (z.B. Statistik, Optimierung, Signalverarbeitung,…) Kann auch für spätere LVAs hilfreich sein und wird auch teilweise verwendet MATLAB wird gerade in den Bereichen Bildverarbeitung, Computer Vision und Mustererkennung sehr häufig eingesetzt Studierende des Bakk-Studiums 532 Medieninformatik und Visual Computing sowie Master-Studium 932 Visual Computing 6 Sebastian Zambanini - EVC - MATLAB Einführung
Wie kann ich MATLAB erlernen? Die heutige Einführung ist ein guter Start Aber wie immer: „Learning by doing“ Probieren Sie die heute vorgestellten Code-Beispiele zuhause oder im Labor aus Einführungsbeispiel: MATLAB Basics MATLAB Primer http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf Erstes Kapitel: „Quick Start“ MATLAB ist leicht zu erlernen und bietet ein umfangreiches Hilfesystem help befehl bzw. doc befehl Wenn Sie nicht mehr weiterwissen Google www.informatik-forum.at Tutoren im Pac-Man-Raum (Favoritenstrasse) zu den betreuten Übungszeiten 7 Sebastian Zambanini - EVC - MATLAB Einführung
Benützung von MATLAB für die LVA Lokale Installation auf eigenem Rechner MATLAB-Studentenversion für Windows, Mac und Linux über ZID erhältlich ( € 13,90): http://www.sss.tuwien.ac.at/sss/mla/ In den Labors Favoritenstrasse Einloggen per ssh auf Servern thales.inflab.tuwien.ac.at oder euklid.inflab.tuwien.ac.at In der Linux-Umgebung in der Shell ssh – X thales oder ssh – X euclid eintippen Account-Daten und Details zur Benützung werden noch bekannt gegeben 8 Sebastian Zambanini - EVC - MATLAB Einführung
MATLAB Desktop Arbeitsverzeichnis Workspace : Variablen im Speicher Current Folder : Dateien im aktuellen Command Window : Eingabe von Arbeitsverzeichnis Befehlen Command History : Liste aller eingegebenen Befehle Details : Details zu Datei 9 Sebastian Zambanini - EVC - MATLAB Einführung
Arbeiten mit MATLAB: Befehlseingabe Zwei Möglichkeiten: Eingabe über Command Window oder Skriptdatei (sog. .m-File) 1. Command Window Befehl wird nach dem Enter-Zeichen sofort ausgeführt 2. Skript Datei mytest.m: Durch den Befehl wird das gleichnamige .m-File gestartet, welches wiederum eine Folge von Befehlen enthält Erzeugen von .m-Files mithilfe des Editors edit dateiname.m Kommentare mit % Ein Semikolon ( ; ) unterdrückt die Ausgabe in der Kommandozeile 10 Sebastian Zambanini - EVC - MATLAB Einführung
MATLAB Editor Skript starten (alternativ F5 drücken) 11 Sebastian Zambanini - EVC - MATLAB Einführung
Dateneingabe - Variablen Keine Variablendeklaration erforderlich Alle Variablen sind standardmäßig Fließkommazahlen doppelter Präzision (Typ double ) Einfache Konvertierung in andere Datentypen möglich ( single , uint8 , int16 …) Variablennamen sind case-sensitive Falls keine Variable für Rückgabewert angegeben wird: Standardvariable ans 12 Sebastian Zambanini - EVC - MATLAB Einführung
Dateneingabe - Vektoren Eingabe der Werte in Trennen der Spalten mittels , oder Leerzeichen Trennen der Zeilen mittels ; Zahlenreihen: von:schrittweite:bis bzw. von:bis 13 Sebastian Zambanini - EVC - MATLAB Einführung
Dateneingabe - Matrizen Mehrere Zeilen und Spalten Verschiedene Befehle zum Erzeugen von Matrizen Nullermatrix: zeros(zeilen,spalten) Einsermatrix: ones(zeilen,spalten) Matrix mit Zufallszahlen: rand(zeilen,spalten) … 14 Sebastian Zambanini - EVC - MATLAB Einführung
Zugriff auf Matrix- oder Vektor-Elemente Zugriff auf Einzelelemente: A(zeile,spalte) = wert Indizes beginnen bei 1! Beim Überschreiten der Indexgrenzen wird die Matrixgröße angepasst und Elemente mit 0 aufgefüllt Matrixbereiche ansprechen: Angabe der Zeilen und Spalten als Vektor 15 Sebastian Zambanini - EVC - MATLAB Einführung
Zugriff auf Matrix- oder Vektor-Elemente Matrixbereiche können auch mit einem skalaren Wert befüllt werden end : max. Indexwert Transponieren (Zeilen und Spalten vertauschen) mittels Alle Zeilen bzw. Spalten ansprechen mittels : 16 Sebastian Zambanini - EVC - MATLAB Einführung
Zugriff auf Matrix- oder Vektor-Elemente Zugriff auf Elemente kann auch über logische Indizierung erfolgen Benutzung einer logischen Indexvariable derselben Größe 17 Sebastian Zambanini - EVC - MATLAB Einführung
Bilder und Mehrdimensionale Arrays Grauwertbild: Matrix (2D Array) Es sind auch Arrays mit mehr als 2 Dimensionen möglich Beispiel: RGB-Bild (3 Dimensionen) Größe des Bildes anzeigen und roten Kanal extrahieren: Bildauschnitt extrahieren 18 Sebastian Zambanini - EVC - MATLAB Einführung
Funktionen Funktionen sind .m-Skripts mit Eingabe- und Rückgabewerten Name der Funktion = Dateiname Funktionen können auch Unterfunktionen haben, von außen ist aber nur die Hauptfunktion aufrufbar Kein expliziter Befehl zur Parameterrückgabe, sondern einfaches Zuweisen der Rückgabevariable Datei absdiff.m: 19 Sebastian Zambanini - EVC - MATLAB Einführung
Workspace Alle über Skripts oder Command Window erzeugten Variablen bleiben im Workspace, bis sie überschrieben oder explizit gelöscht werden Funktionen haben einen lokalen, von außen unsichtbaren Workspace Alle lokalen Variablen werden nach Beendigung der Funktion gelöscht Anzeigen des Workspaces im Command Window: whos Löschen von Variablen: clear variable Löschen aller Variablen: clear all 20 Sebastian Zambanini - EVC - MATLAB Einführung
Programmflusssteuerung while-Schleife for-Schleife if-else-Block 21 Sebastian Zambanini - EVC - MATLAB Einführung
Operatoren Vergleichsoperatoren können auch element- Vergleichsoperatoren weise angewendet < kleiner werden: Unterschied zw. > größer Matrix-Multiplikation <= kleiner gleich und elementweiser >= größer gleich Multiplikation: == gleich ~= ungleich Arithmetische Operatoren + Addition - Subtraktion * Matrix-Multiplikation / Matrix-Division ^ Matrix-Potenzierung .* Elementweise Multiplikation ./ Elementweise Division .^ Elementweise Potenzierung 22 Sebastian Zambanini - EVC - MATLAB Einführung
Vektorisierung Nahezu alle Funktionen akzeptieren sowohl skalare als auch mehrdimensionale Eingaben (for-) Schleifen werden sehr ineffizient ausgeführt Schleifen können großteils vermieden werden Dauert 0,02 s Dauert 4,38 s 23 Sebastian Zambanini - EVC - MATLAB Einführung
Visualisierung MATLAB stellt leistungsfähige Funktionen und Tools zur Visualisierung von Daten bereit, unter anderem: 3D Plots 2D Plots Mehrere Bilder Abbildungen 24 Sebastian Zambanini - EVC - MATLAB Einführung
Figures Visualisierungen werden in eigenen Fenstern (sog. figures) gezeichnet figure öffnet ein neues Fenster figure(n) wählt das n-te Fenster zum Zeichnen aus oder öffnet es, falls noch nicht vorhanden close n schließt das n-te Fenster close all schließt alle Fenster Eine figure bietet zahlreiche Tools zur Untersuchung der Daten (Zoomen, Wertebereich anpassen,…) 25 Sebastian Zambanini - EVC - MATLAB Einführung
2D Plots Plotten von Wertepaaren: plot(x,y,‘formatstring‘) : rote durch- gängige Linie Formatierung der Plots: doc plot 26 Sebastian Zambanini - EVC - MATLAB Einführung
Recommend
More recommend