Einführung in die Computergrafik und Bildverarbeitung
Wintersemester 2021/22
26. Oktober 2021 - Python in der Praxis, erste Bildbearbeitungsschritte
- Welche Python-IDE soll ich verwenden?
- apt, pip, conda, virtualeenv, docker - Environments und Paketmanager für Python
- Bilder laden und modifizieren
Voraussetzungen für Teilnahme am Termin:
- Python-Quiz in GRIPS erfolgreich beantwortet
- (optional) Laptop dabei, um einige der gezeigten Dinge mal selbst auszuprobieren
Rückblick Python-Quiz/Aufgaben
(live)
Python IDEs
- jeder beliebige Text-Editor
- Jetbrains PyCharm (umfangreiche IDE speziell für Python)
- repl.it (kollaborative browser-basierte IDE)
PEP 8 - Style Guide für Python
- PEP: Python Enhancement Proposal - ein Vorschlag, wie die Sprache weiterentwickelt werden soll
- PEP 8 – Style Guide for Python Code](https://www.python.org/dev/peps/pep-0008/)
- pep8: Kommandozeilentool, das Code auf PEP-8-Konformität prüft
- Hier im Kurs: PEP-8-Regeln bitte einhalten (zwingend für Studienleistung), bis auf Regel zu max. Zeilenlänge
- Link-Tipp: Vortrag von Raymond Hettinger: Beyond PEP 8 -- Best practices for beautiful intelligible code
Paketmanagement in Python
Es gibt drei verbreitete Möglichkeiten, Python-Module zu installieren:
- Paketmanagement des Betriebssystems (z.B.
apt
unter Debian/Ubuntu Linux) pip
- Pythons Paketmanagerconda
- Paketmanagement der Anaconda-Distribution
Um für jede Anwendung separate Module zu installieren: virtual environments
Paketmanagement durch Betriebssystem
- Primär bei Linux-Distributionen, z.B. Debian/Ubuntu
apt install python3-matplotlib
- Vorteile: global verfügbar, sicher, vorkompilierte Binaries
- Nachteile: nicht immer aktuell, nicht alle Python-Pakete verfügbar, immer nur eine Paketversion installierbar
Paketmanagement mit pip
- Pakete werden aus dem Python Package Index (PyPI) installiert (PyPI enthält quasi alle Pakete)
pip3 install matplotlib
pip3 install -r requirements.txt
: Textdatei mit Paketnamen und ggf. Versionen.- Vorteile: global oder (default) lokal installierbar, immer aktuellste Version, quasi alle Pakete verfügbar.
- Nachteile: nicht zwingend robust/sicher, Kompilierungsschritt bei C-Erweiterungen notwendig
Paketmanagement mit conda
- Anaconda: Python-Distribution für Scientific Computing (multi-platform)
- Minimale Distribution: miniconda
conda
: package manager für Anaconda (Intro)- Alternative: Mamba
- Vorteile: sicher, robust, vorkompilierte Binaries, integrierte Unterstützung von virtual environments
- Nachteile: nicht immer aktuell, wenige Python-Pakete verfügbar, fügt Overhead (Ressourcen, Debugging) hinzu
Virtual Environments
- Grundidee: für jedes Projekt eine eigene Python-Installation
- Funktionsweise: Überschreiben der Pfade zu Binaries, Bibliotheken in der aktuellen Shell
- Virtualenv im Unterverzeichnis
.env
anlegen:python3 -m venv .env
- Virtualenv aktivieren:
source .env/bin/activate
(deaktivieren durch Beenden der Shell) - Conda:
conda create --name myenv
/conda activate myenv
Python zur Bildbearbeitung
siehe Notebook
Ausblick 27. Oktober 2021 (online) - ohne RW
- Übungsaufgaben und Videos (ab morgen in GRIPS)
- Peer-Support bei Installationsproblemen
Ausblick 2. November 2021 (Präsenz)
- Besprechung bisheriger Aufgaben
- Überblick Lernlandkarte / Abhängigkeitsgraph
- Überblick Studienleistung 1: Bitmap-Grafik
Voraussetzungen für Teilnahme am Termin:
- Lauffähige lokale Python-Installation und IDE
- (optional) lokale JupyterLab-Installation
- Alle Notebooks in GRIPS bearbeitet
- Feedback vorbereitet: wo gibt es Probleme, welche Hilfestellung wäre gut?
- (optional) Laptop dabei, um einige der gezeigten Dinge mal selbst auszuprobieren