Initial commit with project files

This commit is contained in:
2025-06-27 14:34:11 +02:00
commit 7ea3207e63
310 changed files with 9331 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
# Übung 1: Differenzbild
In dieser Übung wird Bewegung mithilfe eines Differenzbildes detektiert. Mithilfe von Bewegungsdetektion können Applikationen
wie z.B. Lichtsteuerungen oder Alarmsysteme gefertigt werden.
Gegeben ist eine statische Kamera, welche
zwei Bilder in einer zeitlichen Abfolge aufgenommen hat. Die Bilder sehen Sie in den folgenden Abbildungen:
<p align="center">
<img src="../../data/surv_01.png" />
</p>
<p align="center">
<img src="../../data/surv_02.png" />
</p>
## Aufgabe a)
Implementieren sie in der Datei [a.py](a.py) die folgenden Schritte, um die Bewegungsdetektion zu realisieren.
1. Öffnen Sie die Bilder mit der Funktion `cv2.imread()`
2. Konvertieren Sie die Bilder in Grauwertbilder mit der Funktion `cv2.cvtColor()`
3. Erzeugen Sie das Differenzbild unter Ausnutzung des vollen Wertebereichs von 0 bis 1 unter Verwendung der folgenden
Punktoperationen:
- Pixelweise Addition/Subtraktion
- Addition/Subtraktion einer Konstanten
- Multiplikation/Division mit einer Konstanten
4. Stellen Sie das Differenzbild mithilfe von `cv2.imshow()` dar
5. Setzen Sie alle Pixel mit Intensität kleiner 0.5 auf 0 und zeigen Sie das resultierende Bild an
Die Musterlösung findet sich unter [l_a.py](l_a.py).

13
5_Bildanalyse/ü1/a.py Normal file
View File

@@ -0,0 +1,13 @@
import numpy as np
import cv2
KERNEL_SIZE = 20
# Einlesen des Bildes
filepath = "../../data/text_%s.jpg"
images = list()
for i in [1, 2, 3]:
img = cv2.imread(filepath % i)
img = cv2.resize(img, (500, 500))
images.append(img)

34
5_Bildanalyse/ü1/l_a.py Normal file
View File

@@ -0,0 +1,34 @@
import numpy as np
import cv2
KERNEL_SIZE = 20
''' Schritt 1: Einlesen der Bilder '''
surv1 = cv2.imread("../../data/surv_01.png")
surv2 = cv2.imread("../../data/surv_02.png")
''' Schritt 2: Konvertieren in den Grauwertbereich '''
surv1 = cv2.cvtColor(surv1, cv2.COLOR_BGR2GRAY)
surv2 = cv2.cvtColor(surv2, cv2.COLOR_BGR2GRAY)
''' Schritt 3: Erzeugen des Differenzbildes '''
print("Minimam und Maximum bevor Transformation:", np.min(surv1), np.max(surv1))
print(" -> Wertebereich ist {0, ..., 255}")
surv1 = surv1 / 255
surv2 = surv2 / 255
print("Minimam und Maximum nach Transformation:", np.min(surv1), np.max(surv1))
print(" -> Wertebereich ist [0, 1]")
diff1 = surv1 - surv2
diff1 = np.abs(diff1) # Absolutwertbildung für die Darstellellung (OpenCV kennt nur positive Werte!)
''' Schritt 4: Darstellen des Differenzbildes '''
cv2.imshow("Differenz ohne Schwellwert ", diff1)
''' Schritt 5: Darstellen des Differenzbildes mit Schwellwert '''
diff2 = np.copy(diff1)
diff2[diff2 < 0.5] = 0
cv2.imshow("Differenz mit Schwellwert ", diff2)
cv2.waitKey(0) # Dieser Befehl ist nötig, um die Darstellung auf dem Bildschirm zu behalten