Sebastian Zambanini Computer Vision Lab Institut f. Rechnergestützte Automation TU Wien



Ähnliche Dokumente
Ablauf Einführung in Visual Computing

Einführung in Visual Computing. Einführung in MATLAB. Sebastian Zambanini Computer Vision Lab Institut f. Rechnergestützte Automation TU Wien

Einführung in. Pierre Bayerl

Matlab Einführung. Tobias Wunner

Artikel Schnittstelle über CSV

Die R-Homepage R herunterladen

Installation. Arbeiten mit der MATLAB-Entwicklungsumgebung. MATLAB als Taschenrechner mit Matrix- und Vektorrechnung.

Version 0.3. Installation von MinGW und Eclipse CDT

Eine Einführung in die Installation und Nutzung von cygwin

Kurzanleitung. Toolbox. T_xls_Import

Tel.: Fax: Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen.

Kursangebot gesammelt einlesen

Dokumentation zur Versendung der Statistik Daten

Step by Step Webserver unter Windows Server von Christian Bartl

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

lineare-algeba.wxmx 1 / 7 Mathematik in wxmaxima Haftendorn Dez 2010

Computeria Solothurn

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Übung 4: Einführung in die Programmierung mit MATLAB

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Installationsanleitungen

Einführung in das Arbeiten mit MS Excel. 1. Bearbeitungs

System-Update Addendum

Eine Anleitung, wie Sie Mozilla Thunderbird 2 installieren und konfigurieren können. Installation Erstkonfiguration... 4

MetaQuotes Empfehlungen zum Gebrauch von

1. So einfach ist der Excel-Bildschirm

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Lizenzen auschecken. Was ist zu tun?

Tipps und Tricks zu Netop Vision und Vision Pro

Internet online Update (Internet Explorer)

Betriebshandbuch. MyInTouch Import Tool

COMPUTERIA VOM Wenn man seine Termine am Computer verwaltet hat dies gegenüber einer Agenda oder einem Wandkalender mehrere Vorteile.

teischl.com Software Design & Services e.u. office@teischl.com

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

MailUtilities: Remote Deployment - Einführung

1. LINEARE FUNKTIONEN IN DER WIRTSCHAFT (KOSTEN, ERLÖS, GEWINN)

1. License Borrowing Verfahren

Leichte-Sprache-Bilder

Betriebssystem Windows - SSH Secure Shell Client

Übung - Datensicherung und Wiederherstellung in Windows 7

E-Cinema Central. VPN-Client Installation

Dokumentation zum Spielserver der Software Challenge

Excel Funktionen durch eigene Funktionen erweitern.

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Verbinden. der Firma

Adminer: Installationsanleitung

4.1 Wie bediene ich das Webportal?

iphone-kontakte zu Exchange übertragen

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

SharePoint Workspace 2010 Installieren & Konfigurieren

TYPO3 Tipps und Tricks

Dateiname Name(n) und Matrikelnr. des/der Bearbeiter Tel.-Nr. und -Adresse für den Fall, dass die Diskette nicht lesbar ist.

Anleitung - Mass er by Patrick Biegel

Kleines Handbuch zur Fotogalerie der Pixel AG

Zahlensysteme: Oktal- und Hexadezimalsystem

Der einfache Weg zum CFX-Demokonto

Kurzeinführung LABTALK

Anzeige von eingescannten Rechnungen

ARAkoll 2013 Dokumentation. Datum:

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch zum Excel Formular Editor

1 Was ist das Mediencenter?

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

E-PRIME TUTORIUM Die Programmiersprache BASIC

Arbeiten mit UMLed und Delphi

IDA ICE - Konvertieren und Importieren von mit TRY_Effekte_aufpraegen.exe erzeugten Datensätzen

Bedienerhandbuch Toleranztabellen Version 1.2.x. Copyright Hexagon Metrology

Installationsanleitung

IBM SPSS Statistics Version 22. Installationsanweisungen für Windows (Lizenz für gleichzeitig angemeldete Benutzer)

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Microsoft Windows 7 und Mozilla Firefox

Python ist leicht zu erlernen, unterstützt mehrere Programmierparadigmen und ist klar strukturiert.

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Ihr CMS für die eigene Facebook Page - 1

Task: Nmap Skripte ausführen

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Kurzbedienungsanleitung

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Wofür braucht man eine Tabellenkalkulation? Das Programm Microsoft Excel gehört in Softwarekategorie der Tabellenkalkulationen.

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Anleitung zur Installation von SFirm 3.1 inklusive Datenübernahme

32.4 Anpassen von Menüs und Symbolleisten 795i

Kurzeinführung Excel2App. Version 1.0.0

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Mediator 9 - Lernprogramm

Auswertung erstellen: Liste mit -

10 Lesen und Schreiben von Dateien

Laden der beiden virtuellen Orgeln (36 bzw. 100 Register) unter Hauptwerk

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Tipps und Tricks zu Netop Vision und Vision Pro

Neue Steuererklärung 2013 erstellen

Einführung in PHP. (mit Aufgaben)

Handbuch B4000+ Preset Manager

Wann benötigen Sie eine neue Lizenz-Datei mit der Endung.pkg?

Kurzanleitung zur Bereitstellung von Sachverhalten und Lösungen zum Universitätsrepetitorium auf dem Server unirep.rewi.hu-berlin.

Transkript:

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 Plots Bilder Häufige Probleme, Tipps & Tricks 2

Was ist MATLAB? MATLAB = MATrix i LABoratory t Software zur numerischen Berechnung mathematischer Probleme Gegenstück: Mathematica, Maplefür symbolische Algebra Alternativen: eigentlich keine wg. des Umfangs Freier MATLAB Klon: Octave (für die Übung nicht zu empfehlen) Hersteller: The MathWorks Inc. aktuelle Version 7.14 (R2012a) Viele Toolboxen für verschiedenste Anwendungsbereiche Signalverarbeitung, Bildverarbeitung, Finanzmathematik, Proprietäre Programmiersprache Ausführliche Dokumentation 3

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 4

Warum soll ich MATLAB erlernen? Um die LVA zu bestehen ; ) MATLAB kann für verschiedene Gebiete verwendet werden (z.b. Statistik, Optimierung, ) 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 5

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 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 in den Labors Favoritenstrasse 6

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 (online: 13,90, DVD: 18, ): http://www.sss.tuwien.ac.at/sss/mla/ Inden LaborsFavoritenstrasse Einloggen per ssh auf Servern thales.inflab.tuwien.ac.at oder euclid.inflab.tuwien.ac.at In der Linux Umgebung in der Shell ssh X thales oder ssh X euclid eintippen 7

MATLAB Desktop Arbeitsverzeichnis Current Folder: D t i i Dateien im aktuellen Arbeitsverzeich nis Workspace: Variablen im Speicher Command Window: Eingabe von Command Window: Eingabe von Befehlen Command History: Liste aller aller eingegebenen Befehle Details: Details Details: Details zu Datei 8 MATLAB Einführung

Arbeiten mit MATLAB: Befehlseingabe Zwei Möglichkeiten: EingabeüberCommand Window oder Skriptdatei (sog..m File) 1. Command Window Befehl wird nach dem Enter Zeichen sofort ausgeführt 2. Skript 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 m Kommentare mit % Ein Semikolon (;) unterdrückt die Ausgabe in der Kommandozeile Datei mytest.m: 9

Dateneingabe Variablen Keine Ki Variablendeklaration i erforderlich Alle Variablen sind standardmäßig mehrdimensionale Felder von Fließkommazahlen doppelter Präzision (Typ double) Einfache Konvertierung in andere Datentypen möglich (single, uint8, int16 ) ) Variablennamen sind case sensitive Fallskeine Variable für Rückgabewert angegeben wird: Standardvariable ans 10

Dateneingabe Vektoren Eingabe der Werte in Trennen der Spalten mittels, Trennen der Zeilen mittels ; Zahlenreihen: von:schrittweite:bis bzw. von:bis 11

Dateneingabe Matrizen Mh Mehrere Zil Zeilen und Spalten Verschiedene Befehle zum Erzeugen von Matrizen Nullermatrix: zeros(zeilen,spalten) Einsermatrix: ones(zeilen,spalten) Matrix mit Zufallszahlen: rand(zeilen,spalten) 12

Zugriff auf Matrix oder Vektor Elemente Zugriff auf Einzelelemente: l A(zeile,spalte) = wert Indizesbeginnen 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 13

Zugriff auf Matrix oder Vektor Elemente Matrixbereiche i 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 : 14

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 15

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 Ki Kein expliziter it Befehl Bfhlzur Parameterrückgabe, sondern einfaches Zuweisen der Rückgabevariable Datei absdiff.m: 16

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 ihtb 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 17

Programmflusssteuerung while Schleife Shlif for Schleife if else Block 18

Operatoren Vergleichsoperatoren < kleiner > größer <= kleiner gleich >= größer gleich == gleich ~= ungleich gec Arithmetische Operatoren + Addition - Subtraktion * Matrix Multiplikation / Matrix Division ^ Matrix Potenzierung.* Elementweise Multiplikation./ Elementweise Division.^ Elementweise Potenzierung Vergleichsoperatoren können auch element weise angewendet werden: Unterschied zw. Matrix Multiplikation und elementweiser Multiplikation: 19

Vektorisierung Nahezu Nh alle Funktionen akzeptieren sowohl skalare kl als auch mehrdimensionale Eingaben (for ) Schleifenwerden sehr ineffizientausgeführt Schleifen können großteils vermieden werden Dauert 4,38 s Dauert 0,02 s 20

Visualisierung MATLAB stellt leistungsfähige Funktionen und Tools zur Visualisierung von Daten bereit, unter anderem: 2D Plots 3D Plots Bilder Mehrere Abbildungen 21

Figures Visualisierungen i werden in eigenen Fenstern (sog. figures) gezeichnet figure öffnet einneues 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, ) 22

2D Plots Plotten von Wertepaaren: plot(x,y, formatstring ) ) r- : rote durch gängige Linie i Formatierung der Plots: doc plot 23

2D Plots Mittels hold on können mehrere Plots überlagert werden 24

Mehrere Abbildungen subplots subplot(x,y,index) teilt das Fenster in x mal y Unterbereiche auf Mit index kann man den aktiven Unterbereich selektieren, auf dem gezeichnet werden soll Der Index läuft dabei zeilenweise durch die Subplots 25

Bilder Einlesen Bildersind Matrizen! Grauwert: m x n Farbbild (RGB): m x n x 3 Einlesen von Bildern: imread Kennt alle gängigen Formate (jpg,png,tif, ) png Typ der Variable von Bildformat abhängig, in der Regel aber uint8 (0 255) Viele Bildoperationen verlangen Fließkommawerte, daher Umwandlung in double oder single sinnvoll 26

Bilder Anzeige Darstellen von Bildern/Matrizen: i imshow imshow nimmt Werte zw. 0 255 (uint8) bzw. 0 1 (single, double) an Alles darüber oder darunter wird als schwarz bzw. weiß angezeigt Darzustellender Wertebereich kann in [] angegeben werden Leere [] bedeuten automatischekontrastanpassung anden Wertebereich der Matrix (min. Wert: schwarz, max. Wert: weiß) 27

Bilder Anzeige Variable bild ist vom Typ uint8 28

Bilder Anzeige imshow erwartet bei double Werte im Bereich 0 1 Die Werte sind aber im Bereich 0 255 Alle Werte >= 1 werden als weiß dargestellt 29

Bilder Anzeige Mit expliziter Angabe des Bereichs 0 255 wird das double Bild korrekt dargestellt 30

Bilder Anzeige Automatische Anpassung: maximale Kontrastausnutzung 31

Bilder Anzeige Explizite Angabe des Bereichs: alle Werte >= 100 werden weiß dargestellt 32

Bilder Anzeige Explizite Angabe des Bereichs: alle Werte <= 150 werden schwarz dargestellt 33

Farbbilder imshow interpretiert ti t m x n x 3 Matrizen als Farbbilder Roter Kanal anzeigen: 34

Image Processing Toolbox Import und Export von Bildern Vor und Nachbearbeitung von Bildern Bildanalysen Anzeige und Auswertung von Bildern und Videos Räumliche Transformationen und Bildregistrierung 35

Beispiel: Grauwertumwandlung 36

Beispiel: Kantendetektion 37

Resizing & Rotation 38

Lineares Gleichungssystem lösen Ein lineares Gleichungssystem Ax=b kann in Matlab mit dem Befehl x=a\b gelöst werden Ist A eine n x n Matrix, so wird die Lösung mitgauß Eliminationbestimmt Ist A eine n x m Matrix mit n ungleich m, wird die Ausgleichslösung gdes über bzw. unterbestimmten Gleichungssystems berechnet, d.h. es wird iddie euklidische Norm des Fehlers Ax b bzw. der Lösung x minimiert. 39

Debugging Setzen von Breaktpoints in MATLAB Skripts (Klick neben Zeilennummer) Die Ausführung der Funktion/Skripts wird am Breaktpoint angehalten Im Command Window können nun Variablen untersucht und verändert werden K: Debug Modus 40

Debugging Buttons zur Navigation i im Debug Modus Db Step, Step in, Continue. Breakpoints können auch mit Haltebedingungen versehen werden 41

Wichtige und nützliche Befehle Details Dtilzu den Befehlen: Bfhl siehe ih Hilfe Länge eines Vektors: length Speichern von Variablen in.mat Datei: save Laden von Variablen aus.mat Datei: load Vektor mitlinear an /absteigenden Werten: linspace Neue Matrix aus Kopien einer Matrix erzeugen: repmat Mauscursor mit Anzeige von Pixelkoordinaten und Pixelwerten: impixelinfo Filter erzeugen: fspecial Bild filtern: imfilter Bild speichern: imwrite 42

Häufige Probleme, Tipps & Tricks Das angezeigte Bild ist komplett weiß/schwarz Das Problem ist wahrscheinlich imshow Ist das Bild wirklich weiß/schwarz? > Werte der Matrix anschauen Darzustellenden Wertebereich bei imshow in [] angeben Achtung: InMATLAB sind Matrixkoordinaten ungleich Bildkoordinaten Funktionen der ImageProcessing y Matrix Toolbox arbeiten mit Bildkoordinaten, x y z.b. impixelinfo Bild x 43

Häufige Probleme, Tipps & Tricks Obwohl MATLAB es erlaubt: Variablen sollten nicht nach Funktionsnamen benannt werden! Dasführt zu schwer auffindbaren Fehlern Beispiel: Variable mit selben Namen wie Funktion für Cosinus Berechnet nicht den Cosinus von 2, sondern gibt das Element an der 2. Stelle des Vektors zurück Für Operationen, die Fließkomma Arithmetik ih ikverlangen, ki keine Integer Variablen verwenden Ki Keine Fhl Fehlermeldung, ld aber unerwartete tt Ergebnisse 44

Weitere (für die LVA irrelevante) Konzepte von MATLAB Objektorientierte i Programmierung Einbindung von C Code: mex Funktionen GUI Programmierung Error Handling (try catch) Arrays von Matrizen unterschiedlicher Größe cells Laufzeitanalyse: Profiler 45

Viel Spaß mit MATLAB!