Files
digitale-bildverarbeitung-l…/0_Einführung/ü3

OpenCV in Python

Die beliebte Bildverarbeitungs-Software OpenCV existiert auch in Python. In dieser Übung sollen Sie einige Befehle erlernen, um grundlegende Funktionen mit OpenCV zu schreiben.

Um OpenCV zu nutzen, müssen Sie zuerst das Paker cv2 installieren. Wenn Sie dieses Repository installiert haben, ist das bereits geschehen. Es wird für die folgenden Schritte davon ausgegangen, das cv2 bereits installiert ist. Importieren Sie zu Beginn Ihres Skriptes das OpenCV Paket mit dem Befehl

import cv2

Nun können Sie alle Funktionen von OpenCV mit dem vorangestellten Kürzel cv2.EIN_BEFEHL() nutzen.

Bild laden

Bilder werden als MxN Matrizen (Grau- und Binärbilder) oder als MxNx3 Arrays (RGB-Farbbilder) gespeichert und interpretiert. Um ein Bild einzulesen, wird die Funktion cv2.imread(PFAD_ZUM_BID) aufgerufen und der Dateiname als Parameter in den Klammern übergeben.

I = cv2.imread('myimage.bmp')  # Farbbild einlesen

Mit dem Befehl Ì.shape kann die Größe einer Matrix bestimmt werden.

m, n, k = I.shape  # Größe ansehen

Bei einer Bildmatrix: Der erste Index ist der Zeilenindex (Bildkoordinaten: y-Achse), der zweite Index ist der Spaltenindex (Bildkoordinaten: x-Achse), wobei der Punkt (0,0) dem linken oberen Bildpunkt entspricht. Der dritte Index ist der Farbkanal.

Bild anzeigen

Zum Anzeigen eines Bildes steht die Funktion cv2.imshow() zur Verfügung. Der Name des Fensters und die Bildvariable wird als Parameter übergeben. Ein neues Fenster öffnet sich und zeigt das Bild an.

cv2.imshow("Fenstername", I)  #Bild anzeigen
cv2.waitKey(0)  # Auf Tastendruck warten

Der Befehl cv2.waitKey(TIME) wird benötigt, damit das Programm auf eine Aktion des Benutzers wartet. Wenn der Parameter dabei 0 ist, wartet das Programm unendlich lange auf den nächsten Tastendruck des Nutzers.

Bild speichern

Zum Abspeichern der Bilddaten steht die Funktion cv2.imwrite(SPEICHER_PFAD, BILD) zur Verfügung. Die Bildvariable wird als zweite Parameter und der Dateiname in Hochkommata als erster Parameter übergeben.

cv2.imwrite('newimage.bmp', I)  # Bilddaten abpeichern

Wenn die Verzeichnisstruktur nicht angegeben wird, speichert Python die Datei im aktuellen Arbeitsverzeichnis.

Aufgabe a)

Implementieren und testen Sie alle Funktion in einem neuen Skript a.py!