Computergrafik 2: Übung 1. Eclipse, PyDev, NumPy, Matplotlib



Ähnliche Dokumente
Programmierung für Mathematik (HS13)

Version 0.3. Installation von MinGW und Eclipse CDT

Python SVN-Revision 12

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Eine sehr kurze Einführung in Python und SimpleITK Teil 1 richard rascher-friesenhausen

2D - Plotten / Visualisierung

Eine sehr kurze Einführung in Python und MyImage richard rascher-friesenhausen

Eine sehr kurze Einführung in (I)Python und SimpleITK Teil 1 richard rascher-friesenhausen richard.rascher-friesenhausen@hs-bremerhaven.

Beispiel 19. December 4, 2009

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

LEHRSTUHL FÜR DATENBANKEN

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

C++ mit Eclipse & GCC unter Windows

Step by Step Webserver unter Windows Server von Christian Bartl

eridea AG Installation Eclipse V 1.4

Installation der SAS Foundation Software auf Windows

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Gnuplot. Justin Simon Bayer. 12. Januar 2006

Kurzanleitung Installation der Zend Studio Sprachpakete

Informationen zur Verwendung von Visual Studio und cmake

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt.

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Magento Theming Ein Einstieg Rainer Wollthan

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Witbox. Anleitung Repetier-Host. Witbox

Multimedia im Netz Wintersemester 2011/12

NX Standardinstallation

MailUtilities: Remote Deployment - Einführung

Installation von NetBeans inkl. Glassfish Anwendungs-Server

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

Blogbeitrag: Installation eines SAP CRM-Systems

Einführung zu den Übungen aus Softwareentwicklung 1

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Modulare Programmierung

mit dem TeXnicCenter von Andreas Both

Einführung in die Programmiersprache C

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Web Services Security

Programmierkurs Java

eridea AG Installation Eclipse V 1.1

Grundlagen von Python

Hinweise zur Inbetriebnahme der FMH-HPC auf Windows 7. Version 4,

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Algorithmen mit Python

Installation / Aktualisierung von Druckertreibern unter Windows 7

Anleitung Captain Logfex 2013

Reparaturmodus unter Office und 2013 finden

Installationsbeschreibung Flottenmanager 7.1

Konventionen. Danksagung

MetaQuotes Empfehlungen zum Gebrauch von

Anleitung zur Webservice Entwicklung unter Eclipse

INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel

Programmieren I. Administratives / Java Installation. Thomas Vetter, Brian Amberg, Andreas Forster. 21. September 2010 UNIVERSITÄT BASEL

Hex Datei mit Atmel Studio 6 erstellen

eduroam mit SecureW2 unter Windows 7 Stand: 27. Januar 2015

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

HTBVIEWER INBETRIEBNAHME

Tutorial. Tutorial. Windows XP Service Pack 3 verteilen DeskCenter Solutions AG

Funktionale Programmierung

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Windows 7 Firewall Regeln über die Registry

Visual Basic Express Debugging

Wählen Sie bitte START EINSTELLUNGEN SYSTEMSTEUERUNG VERWALTUNG und Sie erhalten unter Windows 2000 die folgende Darstellung:

Installationshinweise und Systemvoraussetzungen

Leitfaden Umstieg SFirm 2.5 auf SFirm 3.1

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

5.2 Neue Projekte erstellen

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

Adminer: Installationsanleitung

Fernzugang Uniklinikum über VMware View

Software-Engineering Grundlagen des Software-Engineering

Übung: Verwendung von Java-Threads

Quick-Guide Web Shop. Kurzanleitung für die Benutzer des Bernd Kraft Webshops

Installation Blockdruck WEB. Version 3.1.1

HTW-Aalen. OpenVPN - Anleitung. Eine Installations- und Nutzungsanleitung zu OpenVPN

VisualBasic - Variablen

JBuilderX: Installation und Kurzanleitung (Windows)

Intermezzo. Coding Style PEP8

Installation von MySQL

Keine Disketteneinreichung ab 1. Februar 2014

GameGrid mit BlueJ Seite 1

Artikel Schnittstelle über CSV

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Hallo, Anmeldung auf der Office-Webplattform: Seite 1 von 7 Office 365 Pro Plus

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

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

Einführung in PHP. (mit Aufgaben)

Tipps und Tricks zu Netop Vision und Vision Pro

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Konfiguration JAVA Applet zur uneingeschränkten Nutzung der Videofunktion in einem Browser. Video-Streamer FBI

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Funktionales Programmieren in Python

Liesmich zum Kurs: Programmieren in der Bioinformatik mit Perl Konfigurierung der Programmierumgebung

6 Zeichnungsableitung

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

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

Transkript:

Computergrafik 2: Übung 1 Eclipse, PyDev, NumPy, Matplotlib

Überblick 1. Einrichten der Entwicklungsumgebung 2. Python-Techniken 3. Bildverarbeitung Numpy und Matplotlib Übung Computergrafik 2 SS2012 2

Python, Numpy, Matplotlib installieren Windows Python (Skriptsprache) Version 2.7.3 (32bit) herunterladen: http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi Numpy (Matrix-Erweiterung + Mathematische Library) http://sourceforge.net/projects/numpy/files/numpy/1.6.1/ numpy-1.6.1-win32-superpack-python2.7.exe/download Matplotlib (Erzeugen von Visualisierungen) http://sourceforge.net/projects/matplotlib/files/matplotlib/ matplotlib-1.1.0/matplotlib-1.1.0.win32-py2.7.exe/download Übung Computergrafik 2 SS2012 3

Python, Numpy, Matplotlib installieren Mac OS X Python (Skriptsprache) http://python.org/ftp/python/2.7.3/python-2.7.3-macosx10.6.dmg Numpy (Matrix-Erweiterung + Mathematische Library) http://sourceforge.net/projects/numpy/files/numpy/1.6.1/ numpy-1.6.1-py2.7-python.org-macosx10.6.dmg/download Matplotlib (Erzeugen von Visualisierungen) http://sourceforge.net/projects/matplotlib/files/matplotlib/ matplotlib-1.1.0/matplotlib-1.1.0-py2.7-python.orgmacosx10.6.dmg/download Linux: Über Paketmanager o.g. Pakete installieren Übung Computergrafik 2 SS2012 4

Tutorials Wir empfehlen, die folgenden Tutorials durchzuarbeiten Python (Skriptsprache) http://docs.python.org/tutorial/ Numpy (Matrix-Erweiterung + Mathematische Library) http://www.scipy.org/tentative_numpy_tutorial Matplotlib (Erzeugen von Visualisierungen) http://matplotlib.sourceforge.net/users/pyplot_tutorial.html Übung Computergrafik 2 SS2012 5

Eclipse installieren JDK oder JRE installieren, falls nicht vorhanden http://www.oracle.com/technetwork/java/javase/downloads/ index.html Ggf. den Pfad zum Java /bin Verzeichnis dem Windows-Path hinzufügen Eclipse http://www.eclipse.org/downloads/packages/eclipse-classic-372/ indigosr2 In ein Verzeichnis entpacken z.b. Windows: c:\eclipse Übung Computergrafik 2 SS2012 6

PyDev installieren PyDev (Eclipse-Plugin für Python) Syntax Highlighting, Code-Completion, Debugger Achtung: zuerst Python, NumPy, Matplotlib installieren! Übung Computergrafik 2 SS2012 7

PyDev installieren http://pydev.org/updates Übung Computergrafik 2 SS2012 8

Python Interpreter für PyDev auswählen Eclipse-Preferences à PyDev Auto Config klappt, falls Python im Path gefunden wird Übung Computergrafik 2 SS2012 9

Arbeiten mit Pydev PyDev-Perspective öffnen Übung Computergrafik 2 SS2012 10

Neues PyDev-Projekt anlegen Übung Computergrafik 2 SS2012 11

Neues Python-Modul anlegen Übung Computergrafik 2 SS2012 12

Modul ausführen Übung Computergrafik 2 SS2012 13

Python Tipps Interaktiver Modus und Modulbefragung: >>> import math >>> dir(math) [' doc ', ' file ', ' name ', ' package ', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'hypot', 'isinf', 'isnan', 'ldexp', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc'] >>> help(math.atan2) Help on built-in function atan2 in module math: atan2(...) atan2(y, x) >> Return the arc tangent (measured in radians) of y/x. Unlike atan(y/x), the signs of both x and y are considered. Übung Computergrafik 2 SS2012 14

Python Tipps print ist Dein Freund >>> a,b,c = (1.0, "foo", ["bar"]) >>> print a,b,c # Komma hinter der letzten Variable unterdrückt das Leerzeichen 1.0 foo ['bar'] >>> print "x %d y %d z %d" % (1,4,9) x 1 y 4 z 9 >>> Modul als Hauptprogramm ausführen (nützlich um tests zu schreiben) if name == main : # code, der nur ausgeführt wird wenn das Modul als hauptmodul startet Übung Computergrafik 2 SS2012 15

Python Tipps Listen >>> liste1 = [1,2,3,4,5] >>> liste2 = [6,7,8,9] # + konkateniert zwei listen. Vorsicht: erzeugt keine neuen elemente # weitere Operatoren und eingebaute Listenmethoden in der Doku zu finden >>> liste1 + liste2 [1, 2, 3, 4, 5, 6, 7, 8, 9] Unpacking von Unterelementen >>> koordinaten = [[1,0],[0,1],[2,3]] >>> for x,y in koordinaten:... print 'x',x,'y',y x 1 y 0 x 0 y 1 x 2 y 3 List-Comprehensions Erzeugen eine neue Liste aus einer Eingabeliste Ersparen das Implementieren vieler for-schleifen >>> [2**x for x in range(10)] [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] Übung Computergrafik 2 SS2012 16

Python Tipps List-Slicing: Einfache Bildung von Unterlisten >>> liste = [1,2,3,4,5,6,7,8] # vom Listenkopf abschneiden >>> liste[3:] [4, 5, 6, 7, 8] # vom Listenende abschneiden >>> liste[:3] [1, 2, 3] # segment der Liste auswählen >>> liste[2:5] [3, 4, 5] # Listenadressierung für Fortgeschrittene ;) >>> liste[-4:] [5, 6, 7, 8] >>> liste[:-4] [1, 2, 3, 4] Übung Computergrafik 2 SS2012 17

Python Tipps Funktionen def zone_f2(coords, center, k=0.001): deltax = center[0] - coords[0] deltay = center[1] - coords[1] return np.cos(k*(deltax*deltax + deltay*deltay)) Übung Computergrafik 2 SS2012 18

Python Tipps (optional) map / filter und anonyme (Lambda-) funktionen map bildet listenelemente auf eine Funktion ab und erstellt dabei eine neue liste filter kann über ein bool sches Entscheidungskriterium Elemente aus eine Liste herausfiltern. Funktioniert jedoch auch mit list comprehensions. Anstelle einer Lambda-Funktion kann man in den unteren Beispielen auch den namen einer bestehenden Funktion übergeben. Aber: mit lambda lassen sich zur Laufzeit Funktionen dynamisch generieren >>> koordinaten = [[1,0],[0,1],[2,3]] >>> map (lambda k : k[0] + k[1], koordinaten) [1, 1, 5] >>> zahlen = range(10) >>> zahlen [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> filter (lambda x: x < 5, zahlen) [0, 1, 2, 3, 4] Übung Computergrafik 2 SS2012 19

NumPy Arrays importieren: import numpy as np NumPy Arrays >>> import numpy as np >>> a = np.ones( (4, 3) ) >>> a.dtype dtype('float64 ) >>> a.shape (4, 3) Array Slicing >>> a[:,2] array([2,22,52] 0 1 2 3 >>> b = a.transpose() >>> b.shape (3, 4) >>> b.size 12 >>> a[0,3:5] array([3,4] 4 5 Adressierung Elemente in Array: Zeile, Spalte Indexierung beginnt bei 0 10 11 12 13 14 15 20 21 22 23 24 25 >>> a[2::2,::2] array([[20,22,24] [40,42,44]] 30 40 31 41 32 42 33 43 34 44 35 45 50 51 52 53 54 55 >>> a[4:,4:] array([[44, 45], [54, 55]]) Übung Computergrafik 2 SS2012 20

NumPy Vektoroperationen >>> a = np.ones((4,4)) >>> a + 4 array([[ 5., 5., 5., 5.], [ 5., 5., 5., 5.], [ 5., 5., 5., 5.], [ 5., 5., 5., 5.]]) Obige Operationen elementweise. Matrixmultiplikation mit numpy.dot(a,b) >>> a *2 array([[ 2., 2., 2., 2.], [ 2., 2., 2., 2.], [ 2., 2., 2., 2.], [ 2., 2., 2., 2.]]) >>> b = np.arange(16).reshape((4,4)) >>> b array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]]) >>> np.dot(a,b) array([[ 24., 28., 32., 36.], [ 24., 28., 32., 36.], [ 24., 28., 32., 36.], [ 24., 28., 32., 36.]]) Übung Computergrafik 2 SS2012 21

Bilder laden und plotten mit Matplotlib import numpy as np import matplotlib.pyplot as plt a = plt.imread(./kitten.png ) plt.imshow(a) plt.show() print a.shape à RGB-Bild: (300, 400, 3) à B&W-Bild: (300, 400) print a.dtype à float32 a ist ein Numpy-Vektor (300x400x3), der entsprechend modifiziert werden kann: a = plt.imread(./kitten.png ) a = np.mean(a,2) # axis 2 ist die RGB-Achse plt.imshow(a) plt.show() Übung Computergrafik 2 SS2012 22

Mehrere Subfigures import numpy as np import matplotlib.pyplot as plt a = plt.imread('../cg2/src/hand2.png') print a.shape plt.subplot(121) 1 Zeile 2 Spalten Subfigure 1 plt.subplot(121) plt.imshow(a) plt.subplot(122) b = np.mean(a,2) plt.gray() plt.imshow(b) plt.show() Übung Computergrafik 2 SS2012 23

Skalierung Helligkeit import numpy as np import matplotlib.pyplot as plt import matplotlib plt.gray() a = plt.imread('../cg2/src/hand2.png ) b = np.mean(a,2) plt.subplot(121) plt.imshow(b) plt.subplot(122) c = 0.4 * b plt.imshow(c) plt.show() Übung Computergrafik 2 SS2012 24

Skalierung Helligkeit import numpy as np import matplotlib.pyplot as plt import matplotlib plt.gray() a = plt.imread('../cg2/src/hand2.png ) b = np.mean(a,2) plt.subplot(121) plt.imshow(b, norm = matplotlib.colors.nonorm()) plt.subplot(122) c = 0.4 * b plt.imshow(c, norm = matplotlib.colors.nonorm()) plt.show() Übung Computergrafik 2 SS2012 25

Plotten von Daten Funktionen rng = np.arange(-2*np.pi, 2*np.pi, 0.1) sin = np.array([np.sin(x) for x in rng]) cos = np.array([np.cos(x) for x in rng]) plt.plot(rng, sin) plt.plot(rng, cos) plt.show() Histogramme a = plt.imread([ ]) red = a[:,:,0] green = a[:,:,1] blue = a[:,:,2] r = red.reshape(red.size,1) g = green.reshape(green.size,1) b = blue.reshape(blue.size, 1) plt.hist(r, bins= 255, color='red') plt.hist(g, bins= 255, color='green') plt.hist(b, bins= 255, color='blue') plt.show() Übung Computergrafik 2 SS2012 26