Kivy und Buildozer unter Debian installieren

Kivy ist ein Python Framework zum entwickeln von Apps für etablierte Multitouchgeräte. Unterstützte Betriebssysteme sind Android, iOS, Linux, Mac OS X und Windows. Mit Kivy kann mit dem selben Python Code für all diese Plattformen entwickelt werden ohne, dass es einer speziellen Anpassung bedarf. Kivy installieren Um Kivy unter Debian über den Paketmanager installieren zu können muss zunächst die Quellenliste von apt angepasst werden. Dazu öffnet man als root-user mit einem Texteditor seiner Wahl die Datei /etc/apt/sources....

April 14, 2017 · 2 Minuten · Quisl

Schleifendauer festlegen in Python

Möchte man eine Schleife Beispielsweise alle 20 Millisekunden ausführen so hat man das Problem, dass man nicht genau weiß wie lang die Ausführungszeit der Schleife ist und wie lang danach gewartet werden muss. Hierzu kann ein Timer verwendet werden. Das kann folgendermaßen aussehen: import datetime import time schleifendauer = 0.02 #Zeit in Sekunden while (True): a = datetime.datetime.now() #irgendeincode b = datetime.datetime.now() c = b-a waittime = schleifendauer - c.total_seconds() if (waittime > 0): time....

Februar 22, 2017 · 1 Minute · Quisl

Canny Algorithmus

Der Canny Algorithmus ist ein bekannter Algorithmus zur Darstellung von Kantenbildern. Er besteht aus einer Bildglättung, einer Kantendetektion mit Berechnung von Betrag und Richtung der Kanten, einer Kantenverdünnung durch Nicht-Maximum-Unterdrückung sowie einer Schwellwertoperation die die Unwichtigen Kanten herausfiltert. Die Bildglättung geschieht mittels eines Gaußalgorithmus. Ziel ist es das Bild in seiner Gesamtheit etwas zu entschärfen ohne die Kanten zu verzerren. Zur Kantendetektion wird der Sobeloperator verwendet. Aus den hierbei berechneten Bildern wird nun zum einen mittels Arctan2 Funktion die Richtung der Kanten ermittelt, zum anderen wird die Kantenstärke über den euklidischen Betrag der beiden Bilder gebildet....

Februar 21, 2017 · 2 Minuten · Quisl

Kantendetektion Mit Sobeloperator Mit Opencvpython

Ein wichtiges Thema in der Bildverarbeitung ist die Kantenerkennung. Zum hervorheben von Kanten wird oft der Sobeloperator genutzt. Dies ist ein Faltungskern mit der Eigenschaft Änderungen in der Helligkeit des Bildes zu verdeutlichen. Vergleichbar wie beim Ableiten mathematischer Funktionen. Die Faltungskerne des Sobeloperators sehen folgendermaßen aus: Sobel X Sobel Y Der Sobeloperator in X Richtung lässt Vertikale Kanten sichtbar werden während der Sobeloperator in Y Richtung Horizontale Kanten aufzeigt. Im Ausgabebild der beiden Operatoren erscheinen nun sowohl positive als auch negative Pixel....

Februar 21, 2017 · 2 Minuten · Quisl

Rauschen auf Bildern erzeugen mit OpenCV+Python

Für den Blogbeitrag über die verschiedenen Weichzeichnungmethoden habe ich Bilder mit verschiedenen Rauschsorten verwendet. Dieses Rauschen ist auf dem Originalfoto vom Eiffelturm nicht vorhanden sondern wurde nachträglich eingefügt. Auch wenn das für die digitale Bildverarbeitung eher uninteressant ist möchte ich in diesem Beitrag zeigen wie man so etwas umsetzt. Salz und Pfeffer Rauschen Als Salz & Pfeffer Rauschen bezeichnet man einzelne schwarze oder weiße zufällig verteilte Punkte auf einem Bild....

Februar 20, 2017 · 1 Minute · Quisl

Glättungsfilter mit OpenCV+Python

Im letzten Beitrag habe ich einige Glättungsfilter erklärt. Hier nun ein praktisches Beispiel für OpenCV und Python. Das folgende Programm lädt ein Bild in den Speicher, wendet den Mittelwertfilter, den Gaußfilter sowie den Medianfilter darauf an und speichert die Bilder anschließend unter anderen Namen. import cv2 img = cv2.imread('Bild.jpg',cv2.IMREAD_GRAYSCALE) gblur = cv2.GaussianBlur(img,(3,3),0) blur = cv2.blur(img,(3,3),0) mblur = cv2.medianBlur(img,3) cv2.imshow('Originalbild',img) cv2.imshow('Gaussblur',gblur) cv2.imshow('Averageblur',blur) cv2.imshow('Medianblur',mblur) cv2.imwrite('bild_mblur.jpg',mblur) cv2.imwrite('bild_bblur.jpg',blur) cv2.imwrite('bild_gblur.jpg',gblur) cv2.waitKey(0) cv2.destroyAllWindows() Mit imread() wird eine Bilddatei als Grauwertbild eingelesen....

Februar 20, 2017 · 1 Minute · Quisl

Webcam abgreifen mit OpenCV+Python

Manchmal möchte man nicht nur ein einzelnes Bild von der Festplatte laden um es zu bearbeiten sondern einen ganzen Videostream beobachten um zum Beispiel auf ein bestimmtes Ereignis zu warten. Dieser Videostream kann als Datei oder als Webcam vorliegen. Das ganze funktioniert mit folgenden Zeilen: import cv2 cap = cv2.VideoCapture(0) while(cap.isOpened()): ret, frame = cap.read() if ret==True: k = cv2.waitKey(1) cv2.imshow('Bild',frame) Zeile 3 öffnet mit der VideoCapture() Funktion eine Verbindung zur Kamera....

Februar 9, 2017 · 1 Minute · Quisl

Wie du mit OpenCV Python Bilder einliest

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....

Februar 9, 2017 · 2 Minuten · Quisl