Awesome WM 4.0 Widgets erstellen

Heute möchte ich eine kleine Anleitung geben wie man unter Awesome 4.0 eigene Widgets erstellen und einbinden kann. Beispielhaft erstellen wir ein kleines Widget, welches die Helligkeit des Bildschirms anzeigt. Als Hardware verwende ich ein Thinkpad T410. Es könnte also es sein, dass ihr die Hotkeys anpassen müsst. Unter Awesome 4.0 kann die komplette Oberfläche mithilfe der Konfigurationsdatei angepasst werden. Diese Konfigurationsdatei heißt “rc.lua” und befindet sich meistens unter “~/.config/awesome”. Heutiges Ziel ist es, dass ein Helligkeitsicon und eine Prozentzahl der aktuellen Bildschirmhelligkeit angezeigt wird....

März 7, 2017 · 3 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 Vergleich

In einem vorherigen Blogartikel habe ich über die rechnerische Umsetzung von Glättungsalgorithmen gesprochen. Die dabei erläuterten Algorithmen waren der Mittelwertfilter, der Gaußfilter und der Medianfilter. In diesem Artikel sollen die Vor- und Nachteile der einzelnen Glättungsverfahren diskutiert werden. Zunächst muss festgehalten werden, dass es sich bei dem Mittelwert und beim Gaußfilter und Lineare und beim Medianfilter (vergleiche auch Minimumfilter und Maximumfilter) um nichtlineare Filter - genauer Rangordnungsfilter - handelt. Während bei linearen Faltungen der neue Wert durch die umliegenden Pixel errechnen lässt entspricht bei Rangordnungsfiltern der neue Wert genau dem Wert von einem der umliegenden Pixel....

Februar 20, 2017 · 2 Minuten · 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

Bildglättung mittels Mittelwertfilter, Gaußfilter und Medianfilter

Bei von Kameras aufgenommenen Grauwertbildern kann es bei schlechten Lichtverhältnissen, bei alten Aufnahmen oder bei günstigen Kameras zu Veränderungen in den Farben von einzelnen Pixeln kommen. Oft ist dies Gaußverteiltes oder “Salz & Pfeffer” Rauschen. Was sind Faltungsfilter Da fehlerhafte Pixel für die digitale Bildverarbeitung suboptimal sind, ist es oft nötig diese Pixel herauszurechnen. Verfahren die dies bewirken nennt man weich zeichnende oder glättende Verfahren. Möglichkeiten hierzu bieten unter anderem der Mittelwertfilter der Gaußfilter und der Medianfilter....

Februar 18, 2017 · 2 Minuten · Quisl

Linescan mit OpenCV+Python

Für manche Aufgaben der Bildverarbeitung möchte man gerne alle weißen oder schwarzen Punkte auf einer geraden zählen. Dies ist eine übliche Vorgehensweise bei der Realisierung eines Barcodescanners. Die dazugehörige Technik nennt man Linescan (oder Scanline) Funktion. Hierzu brauchen wir also eine Funktion die uns die einzelnen Punkte liefert. Für Linescans die in 0°, 90°,180° oder 270° zur Bildausrichtung stehen ist das ganze mit einer einfachen for Schleife getan. Für einen Vertikalen Scan:...

Februar 10, 2017 · 2 Minuten · 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