Initial commit with project files
This commit is contained in:
37
5_Bildanalyse/ü1/README.md
Normal file
37
5_Bildanalyse/ü1/README.md
Normal 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
13
5_Bildanalyse/ü1/a.py
Normal 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
34
5_Bildanalyse/ü1/l_a.py
Normal 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
|
||||
|
||||
Reference in New Issue
Block a user