Wie du einen einfachen Satzgenerator für Horoskope in Python baust

Für mein Twitch Horoskop Projekt brauchte ich ein Stück Software, das mir einen grammatikalisch korrekten Satz auf Englisch erzeugen kann. Quasi einen Satzgenerator. Dieser sollte in Python laufen, da das weitere Projekt darauf aufbaut. Folgende Punkte waren mir wichtig: Es sollte die Möglichkeit geben einen Seed in Form eines Parameters, als String mitzugeben. Dieser Seed soll sicherstellen, dass mir die Funktion denselben Satz bei mehrmaliger Ausführung zurückliefert, solange sich der Seed nicht ändert....

November 3, 2020 · 4 Minuten · Quisl

azure-storage Python Modul auf Azure Web App einbinden

Es gibt bei Azure Web Apps zurzeit einen Bug beim Verwenden des azure-storage Moduls mit Python 3.4. Wenn man mit der requirements.txt über Git versucht das Modul azure-storage einzubinden erhält man den Fehler Unable to find vcvarsall.bat. Fehlerbeschreibung Azure Web Apps verwendet Python in der Version 3.4 und pip in der Version 1.5.6. In dieser pip Version gibt es den Parameter –find-links nicht, der aber zum installieren verwendet wird. Workaround Beim Azure Portal anmelden Die Web App auswählen In dem Menü auf der linken Seite auf Advanced Tools klicken Auf den Link: Go klicken Oben im Menü auf Tools –> Download deployment script und die Zip Datei deploymentscript....

Oktober 1, 2017 · 4 Minuten · Quisl

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

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