summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonard Kugis <leonard@kug.is>2022-12-23 02:35:48 +0100
committerLeonard Kugis <leonard@kug.is>2022-12-23 02:35:48 +0100
commit18510bb70645d78f0961b38e76110a6f64bffa58 (patch)
treef9b20a2cb6cacc9f0fde67354fa4d13eaa746fb2
parent3ecf33982354c75dbef45634cb097fec28d69fcd (diff)
-rw-r--r--01_imageloader.py41
-rw-r--r--01_pythonintro.py85
2 files changed, 126 insertions, 0 deletions
diff --git a/01_imageloader.py b/01_imageloader.py
new file mode 100644
index 0000000..1c3d66d
--- /dev/null
+++ b/01_imageloader.py
@@ -0,0 +1,41 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+
+
+import cv2
+import matplotlib.pyplot as plt
+
+
+# TODO Aufgabe 5
+
+'''
+Schreiben Sie eine Funktion `showImage(..)`, die ein übergebenes Bild `img` in einem Fenster mit dem übergebenen Titel `title` anzeigt und wartet bis es geschlossen wird, bevor das Programm weiter ausgeführt wird. Beachten Sie, dass OpenCV (BGR) und Matplotlib (RGB) verschiedene Farbformate nutzen. Anzuzeigende Bilder sollen also entsprechend konvertiert werden. Das Beispielbild zeigt beispielsweise einen orangenen (keinen blauen) Kolibri.
+'''
+#
+# ???
+#
+
+'''
+Schreiben Sie eine Funktion `imageStats(..)`, die die Höhe, Breite und Anzahl der Farbkanäle des übergebenen Bildes als String zurückgibt.
+'''
+#
+# ???
+#
+
+# load image
+img = cv2.imread('images/hummingbird_from_pixabay.png')
+
+
+'''
+- Färben Sie nun den Kolibri grün, indem Sie den Rot- und Grünkanal des Bildes vertauschen.
+- Zeigen Sie das Bild nacheinander im Original und mit vertauschten Farben an.
+- Geben Sie die Bildeigenschaften aus.
+- Speichern Sie das veränderte Bild (als `images/bluebird.png`) auf der Festplatte.
+'''
+# Bild anzeigen
+plt.figure("Hummingbird Original")
+plt.imshow(img)
+plt.show()
+#
+# ???
+#
diff --git a/01_pythonintro.py b/01_pythonintro.py
new file mode 100644
index 0000000..d27aa85
--- /dev/null
+++ b/01_pythonintro.py
@@ -0,0 +1,85 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+
+
+print("Hallo Welt!")
+
+
+# TODO Aufgabe 2
+
+'''
+Erzeugen Sie eine Liste mit den Werten 1 bis 20
+'''
+#
+# ???
+#
+
+
+'''
+Quadrieren Sie alle ungeraden Elemente (die geraden bleiben unverändert)
+'''
+#
+# ???
+#
+
+
+'''
+Lesen Sie Zahlen vom Keyboard ein, bis insgesamt vier Zahlen eingelesen wurden und sortieren Sie diese aufsteigend
+'''
+#
+# ???
+#
+
+
+
+# TODO Aufgabe 3
+
+'''
+Schreiben Sie für das Quadrieren einer Liste eine separate Funktion
+'''
+#
+# ???
+#
+
+
+'''
+Schreiben Sie eine rekursive Funktion, die die Summe aller Elemente einer Liste berechnet
+'''
+#
+# ???
+#
+
+
+'''
+Berechnen Sie den arithmetischen Mittelwert aller Elemente einer Liste (nutzen Sie dabei die bereits in Python existierende Summenfunktion `sum(list)`)
+'''
+#
+# ???
+#
+
+
+
+# TODO Aufgabe 4
+
+'''
+Implementieren Sie eine einfache Klasse Vec2 die einen 2-dimensionalen Vektor repräsentieren soll. Die Klasse soll folgende Eigenschaften haben
+
+- Zwei Variablen x und y um die Werte des Vektors zu speichern. Diese sollen über einen Konstruktor __init__(self, x, y) (mit zwei Unterstrichen vor und nach dem init jeweils) initialisiert werden können.
+- Eine Klassenfunktion __str__(self), die die Werte des Vektors in geeigneter Form als String zurückgibt
+- Eine Klassenfunktion length(self), die die euklidische Länge des Vektors zurückgibt
+- Eine Klassenfunktion add(self, rhs), die die komponentenweise Addition von zwei Vektoren durchführt und einen neuen Vektor zurückgibt.
+- Eine globale Klassenvariable gid und eine lokale Klassenvariable id, die genutzt werden, um jedem erzeugten Vektor eine eigene ID zuzuweisen.
+- Testen Sie Ihre Implementation mit Beispielen.
+'''
+
+from math import sqrt
+
+# Vec2-Klasse
+#
+# ???
+#
+
+# Vec2 Demo
+#
+# ???
+#