1. Lesen, Anzeigen und Schreiben von Bildern
Lesen von Bildern:
Um ein Bild in OpenCV zu lesen, verwenden wir die Funktion cv2.imread()
. Diese Funktion nimmt den Pfad zum Bild als Argument und gibt das Bild als ein NumPy-Array zurück.
Beispiel:
import cv2
# Ein Bild laden
bild = cv2.imread('beispielbild.jpg')
# Überprüfen, ob das Bild erfolgreich geladen wurde
if bild is None:
print("Bild konnte nicht geladen werden.")
else:
print("Bild erfolgreich geladen.")
Anzeigen von Bildern:
Um ein Bild anzuzeigen, verwenden wir die Funktion cv2.imshow()
. Diese Funktion zeigt das Bild in einem neuen Fenster an.
Beispiel:
import cv2
# Ein Bild laden
bild = cv2.imread('beispielbild.jpg')
# Bild anzeigen
cv2.imshow('Angezeigtes Bild', bild)
# Warten, bis eine Taste gedrückt wird
cv2.waitKey(0)
# Alle geöffneten Fenster schließen
cv2.destroyAllWindows()
Schreiben von Bildern:
Um ein Bild zu speichern, verwenden wir die Funktion cv2.imwrite()
. Diese Funktion nimmt den Dateinamen und das Bild als Argumente.
Beispiel:
import cv2
# Ein Bild laden
bild = cv2.imread('beispielbild.jpg')
# Bild speichern
cv2.imwrite('gespeichertes_bild.jpg', bild)
2. Bilddatentypen und Bildgrundlagen
2.1 Bilddatentypen:
Bilder in OpenCV werden als NumPy-Arrays dargestellt. Diese Arrays sind in der Regel dreidimensional (für Farbabbilder) oder zweidimensional (für Graustufenbilder).
- Graustufenbilder: Zweidimensionales Array, in dem jeder Wert eine Helligkeit zwischen 0 (schwarz) und 255 (weiß) darstellt.
- Farbabbilder: Dreidimensionales Array mit drei Kanälen (B, G, R) , wobei jeder Kanal Werte zwischen 0 und 255 haben kann.
2.2 Beispiel für das Lesen eines Bildes und Überprüfen des Typs:
import cv2
# Ein Bild laden
myBild = cv2.imread('beispielbild.jpg')
# Überprüfen des Datentyps
print(type(myBild)) # <class 'numpy.ndarray'>
# Überprüfen der Bilddimensionen
print(myBild.shape) # Ausgabe: (Höhe, Breite, Kanäle)
3. Verständnis von Bildkoordinaten und Pixelwerten
3.1 Bildkoordinaten:
In OpenCV ist der Ursprung (0, 0) in der oberen linken Ecke des Bildes. Die x-Koordinate nimmt nach rechts zu und die y-Koordinate nimmt nach unten zu.
Zugriff auf Pixelwerte: Um auf den Pixelwert an einer bestimmten Position zuzugreifen, verwenden wir die Array-Indexierung.
Beispiel:
import cv2
# Ein Bild laden
myBild = cv2.imread('beispielbild.jpg')
# Zugriff auf den Pixelwert an Position (50, 100)
pixel = myBild[50, 100]
print("BGR-Wert des Pixels an (50, 100):", pixel) # Ausgabe: [B, G, R]
# Zugriff auf den blauen Kanal des Pixels an Position (50, 100)
blau = myBild[50, 100, 0]
print("Blauer Kanal des Pixels an (50, 100):", blau)
3.2 Ändern von Pixelwerten:
Wir können die Pixelwerte auch ändern, indem wir ihnen neue Werte zuweisen.
Beispiel:
import cv2
# Ein Bild laden
myBild = cv2.imread('beispielbild.jpg')
# Setzen des Pixelwerts an Position (50, 100) auf [0, 255, 0] (grün)
myBild[50, 100] = [0, 255, 0]
# Speichern des veränderten Bildes
cv2.imwrite('verändertes_bild.jpg', myBild)
Diese grundlegenden Konzepte sind der Ausgangspunkt für die Arbeit mit Bildern in OpenCV. Indem Sie diese Techniken beherrschen, können Sie eine Vielzahl von Bildverarbeitungsaufgaben durchführen.