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

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

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