Programmierung in Python und OpenCV
Hier ist ein kleines Einführungstutorial in die
Benutzung von Python und OpenCV. Ich empfehle Python Vers. 2.6 und
OpenCV 2.1
in Kombination zu verwenden, die ich als sehr zuverlässig und stabil im Zusammenspiel
erlebt habe. Python 2.6 downloaden und installieren OpenCV 2.1 downloaden und installieren, dabei bei der Installation angeben dass der Pfad von OpenCV2.1\bin in die Windows-Pfad-Variable PATH übernommen wird. Neustart von
Windows ist danach notwendig Nach dem Neustart des Windows-Systems die Dateien cv.lib und cv.pyd von C:\OpenCV2.1\Python2.6\Lib\site-packages in das
site-packages-Verzeichnis der Python 2.6-Installation kopieren, also in der Regel nach C:\Python26\Lib\site-packages Python hat meines Erachtens zu Unrecht den einfachen Ruf einer
Skriptsprache, die für Grafikanwendungen ungeeignet sei. Gerade in Verbindung mit den
starken Python-Bibliotheken und Modulen, die in C++ geschrieben sind, wird die Brillianz
und Einfachheit von Python als vollwertige Programmiersprache auch für Grafikanwendungen
sehr deutlich. Das Programm importiert die Grafik-Bibliothek opencv und lädt dann das Bild in "Images/Python_OpenCV.jpg" relativ zum Programmstandort ein. Sodann eröffnet es ein Fenster mit dem Label "PyOpenCV" und zeigt das in der Variablen image gespeicherte Bild mittels ShowImage an. In der nächsten Zeile wartet das Programm auf einen beliebigen Tastendruck und setzt dann zum Programmende fort, um das eröffnete Fenster wieder zu löschen und sich dann selbst zu beenden. Programmierung in Python und OpenCV Teil 2
Aber was wäre eine Grafikbibliothek
ohne Grafiktransformationen? Ein weiteres kleines Beispielprogramm in Python/OpenCV
verdeutlicht die Stärken der OpenCV-Bibliothek: Das Programm lädt das Bild eines Apfels und speichert dieses in der Quelldatei quelle. Es setzt nun die Parameter threshold (= Schwelle) und maxValue. Mittels der Funktion cv.CloneImage wird eine genaue Kopie des Apfelbilds erstellt, um dieses später zu modifizieren. In der darauffolgenden Zeile erstellen wir ein Graubild, welches genau die gleiche Größe wie unsere Quellbild quelle hat. Wenn wir statt 1 die Zahl 3 in der Funktion cv.CreateImage angeben würden, so wäre es kein Graubild sondern ein Farbbild. Dieses Graubild ist aber zunächst noch leer und enthält keine Daten. Mit der Funktion cv.CvtColor und dem Parameter cv.CV_BGR2GRAY wandeln wir dann unser farbiges Quellbild in ein schwarz-weisses Graubild um und speichern es in der Variablen grau. In den nächsten Zeilen erstellen wir für diese beiden Bilder Anzeigefenster (cv.NamedWindow) und zeigen diese auch an (cv.ShowImage). Die Funktion cv.Treshold nimmt das Eingangsbild quelle und untersucht bei jedem Pixel, ob der Wert den Schwellenwert, der in threshold gespeichert ist, überschreitet oder nicht. Wenn ja, wird der Pixel dann auf maxValue gesetzt und so in die Bildvariable colorThresh geschrieben. Es ergibt sich daraus eine Art Comic-Art-Bild. Dies wird ebenfalls für das Graubild durchgeführt, so dass wir hier ein Bild enthalten was nur schwarze oder weisse Pixel, aber keine grauen Bildpunkte enthält. Wieder werden beide Bilder danach dargestellt und dann nach Tastendruck die Bilder gelöscht und das Programm beendet. Programmierung in Python und OpenCV Teil 3
So wie jeder Mensch seine Ecken und Kanten hat, so haben auch
Bilder welche. Ein weiteres kleines Beispielprogramm in Python/OpenCV
findet die Ecken und Kanten im Bild: Das Programm lädt das Bild einer Birne und speichert dieses in der Quelldatei quelle. In der darauffolgenden Zeile erstellen wir ein Graubild, welches genau die gleiche Größe wie unsere Quellbild quelle hat. Dieses Graubild ist aber zunächst noch wie im vorherigen Beispiel leer und enthält keine Daten. Mit der Funktion cv.CvtColor und dem Parameter cv.CV_BGR2GRAY wandeln wir dann unser farbiges Quellbild in ein schwarz-weisses Graubild um und speichern es in der Variablen grau. Wir erstellen abermals ein noch leeres Graubild und in der nächsten Zeile ermitteln wir mittels der Funktion cv.Canny die Ecken und Kanten im grauen Quellbild und speichern diese in der Zieldatei cannyImg ab, indem der sogenannten Canny-Algorithmus verwendet wird. Die Werte 50 und 150 sind Schwellenwerte für den Algorithmus, während der dritte Wert 3 der Wert für den Sobel Operator darstellt. Das Ausgangsbild als auch das Ergebnis wird dann mittels cv.NamedWindows und cv.ShowImage dargestellt und nach Tastendruck beendet sich das Programm. |
Weitere
Informationen wenn Sie sich per Email an uns
wenden.
. |