1 of 14

3, 2, 1 …. los geht’s!

Alle Pakete für Windows: http://www.lfd.uci.edu/~gohlke/pythonlibs/

Alternative Anleitung für Windows https://goo.gl/bTcwnp

2 of 14

OpenCV + Python

Bring deiner Kiste Sehen bei!

3 of 14

Bildverarbeitung mit Python?

  • Python ist eine interpretierte Scriptsprache
  • Sehr langsam bei wiederholter Ausführung, wie z.B. Schleifen
  • Wie soll damit BV gehen?

Python Scripte

Python Interpreter

OS, Treiber, etc

for x in spalten:

for y in zeilen:

if bild[x][y] > 42:

bild[x][y] = 255

for x in spalten:

for y in zeilen:

bild[x][y] = 0

4 of 14

OpenCV to the rescue!

  • Python lässt sich mit Modulen in C/C++-Code erweitern!
  • Aufwendige Berechnungen laufen in vorkompiliertem Code
  • Python verbindet alle Module schnell und flexibel

Python Scripte

Python Interpreter

OS, Treiber, etc

Numpy

5 of 14

Numpy ist dein Freund!

Numpy

  • Bietet Objekte für den Zugriff auf n-dimensionale Daten … wie z.B: Bilder!

  • Viele Funktionen/Algorithmen schon integriert

Python Scripte

Python Interpreter

OS, Treiber, etc

Numpy

bild[bild > 42] = 0

bild[:,:] = 0

6 of 14

OpenCV to the rescue!

OpenCV

  • Umfangreiche Bibliothek zum …
    • Lesen/Aufnehmen/Anzeigen von Bildern

    • Konvertieren/Filtern
    • Merkmale in Bildern suchen

Python Scripte

Python Interpreter

OS, Treiber, etc

Numpy

magic = cv2.CascadeClassifier(‘face.xml’)

faces = magic.detectMultiScale(bild, 1., 5)

bild = cv2.imread(‘foobar.jpg’)

cv2.imshow(bild)

Aber fangen wir doch erstmal vorne an …. :-)

7 of 14

Bsp. 00 - Bild rein, Bild raus

Zum Start wollen wir …

  • In einer Endlosschleife ...
    • Bild mit einer Kamera aufnehmen
    • Bild in einem Fenster anzeigen

8 of 14

Bsp. 01 - woraus besteht ein Bild? Etwas Spielerei ...

Bauen wir unser Beispiel etwas aus …

  • Zerlegen wir unser Bild in seine Farbkanäle
  • Konvertieren in andere Farbräume
  • Bilder manipulieren mit Numpy

9 of 14

Bsp. 02 - Farben, Farben, Farben ….

Bauen wir unser Beispiel etwas aus …

  • Histogramme
  • Konvertieren in andere Farbräume
  • Segmentieren nach Farbe

10 of 14

Bsp. 03 - Drehen, Quetschen, Zerren, ...

Was tun wenn unser Bild mal kein Rechteck ist? …

  • Eckpunkte definieren
  • Bilder entzerren

11 of 14

Bsp. 04 - KEine BEwegung!!!

Bewegt sich was im Video? … und wo?

  • Mehrere Bilder aufnehmen
  • Aktuelles Bild - altes Bild = ???
  • Änderungen Markieren

12 of 14

Bsp. 05 - Bitte lächeln!

Sind Gesichter im Bild? … und wo?

  • Haar-Kaskaden-Filter initialisieren
  • Filter anwenden
  • … Magic! :-)

13 of 14

Nützliches für die Werkzeugkiste ...

  • SciPy Library - https://scipy.org/

Viele, viele Algorithmen zur Signal-/Bildverarbeitung

  • scikit-image - http://scikit-image.org/

Sammlung von Algorithmen zur Bildverarbeitung

  • Matplotlib - http://matplotlib.org/

Plotten von Daten, Anzeigen von Bildern, einfache GUIs

  • scikit-learn - http://scikit-learn.org/

Umfangreiche Sammlung von Algorithme zu Machine-Learning

  • SimpleCV - http://simplecv.org/

14 of 14

Lesefutter für den geneigten Leser ...

  • Tutorials mit praxisnahen Beispielen

http://www.pyimagesearch.com/

  • Python-Tutorials aus der OpenCV Doku

https://opencv-python-tutroals.readthedocs.io/en/latest/

  • Beispiele zur Bildverarbeitung mit scikit-image

http://scikit-image.org/docs/stable/auto_examples/index.html