Ich bin gerade dabei mich wieder etwas mehr mit rechnergestützter Bildverarbeitung zu beschäftigen. Dabei verwende ich als Hilfsmittel OpenCV und Python. Ersteres ist eine sehr mächtige, freie Programmbibliothek die viele stark optimierte Algorithmen zur Bildverarbeitung bereitstellt.

Da Python seit einigen Jahren meine absolute Lieblingsscriptsprache ist habe ich mich dazu entschieden zukünftige Projekte mit Python anzugehen.

Aktuell verwende ich Python in der Version '2.7.13'. Mit der Version 3.0 haben die Entwickler jedoch Teile der Python Syntax geändert. Wenn du meine Beispiele nicht ausführen kannst, dann könnte es genau daran liegen. Ich verwende im folgenden OpenCV in der Version '3.2.0'.

Hier zuerst ein kleiner Code wie du Bilder einliest.

import cv2
img = cv2.imread('bild.png',cv2.IMREAD_GRAYSCALE)

cv2.imshow('Hallo Welt',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

In der ersten Zeile lädst du die OpenCV Bibliothek.

Mit imread() kannst du die Bilddaten aus einer Bilddatei als Numpy Array in eine Variable speichern. Mithilfe des Flags im zweiten Argument sagst du, dass du ein Grauwertbild haben willst. Alternative Flags wären cv2.IMREAD_COLOR für alle drei Farbkanäle oder cv2.IMREAD_UNCHANGED für die Farbkanäle und die Alphakanäle (für Transparenz).

imshow() erstellt ein Fenster im Speicher. Dabei sind die Argumente erstens der Fenstername und zweitens die Bildmatrix.

waitKey() zeigt alle mit imshow() erstellten Fenster an und wartet eine Anzahl an Millisekunden. Diese kannst du als Argument mitgeben. Alternativ kannst du auch einfach eine Taste drücken ohne zu warten. Bei waitKey(0) wird übrigens unendlich lange gewartet. Nebenbei liefert diese Funktion die gedrückte Taste als Rückgabewert.

destroyAllWindows() räumt letztendlich den Speicher wieder auf.


Konnte ich helfen? Ich freue mich über einen Drink! 💙