Operatoren |
Dieses Kapitel beschreibt Operatoren der Schwellenwertsegmentierung.
Eine Möglichkeit ein Bild zu segmentieren ist die Verwendung von Schwellenwertoperatoren. Regionen werden dabei durch Schwellenwertbedingungen bestimmt, die auf Grauwerten basieren. Je nach Anwendung können sich Aufgabenbereiche und Aufnahmesituationen stark unterscheiden, weswegen eine Reihe unterschiedlicher Operatoren zur Verfügung stehen.
Die folgenden Abschnitte geben einen Überblick über die vorhandenen Schwellenwertoperatoren. Zu diesem Zweck werden sie in histogrammbasierte und lokale Methoden eingeteilt und genauer betrachtet.
Unabhängig von ihrer Position im Bild werden Pixel bei der histogrammbasierten Segmentierung nur basierend auf ihren Grauwerten in Regionen eingeteilt. Die Schwellenwerte werden daher durch eine Anpassung an die Form des Histogramms bestimmt.
Mit dem Operator threshold kann der Nutzer alle Pixel auswählen, deren Wert in einem manuell bestimmten Grauwertintervall liegt.
(1) | (2) | (3) |
Der Operator fast_threshold arbeitet ebenfalls mit zwei manuell zu bestimmenden Schwellenwerten, nutzt allerdings einen anderen Algorithmus zur Berechnung.
Um das Eingangsbild in eine helle und eine dunkle Region einzuteilen berechnet binary_threshold automatisch einen Schwellenwert, um Vorder- und Hintergrund möglichst eindeutig voneinander zu trennen.
(1) | (2) | (3) |
Die subpixelgenaue Grenze zwischen Vorder- und Hintergrund des Eingabebildes gibt der Operator threshold_sub_pix aus. Der Schwellenwert muss hierbei manuell gesetzt werden.
auto_threshold berechnet die lokalen Minima im Histogramm eines Bildes, um daraus die Schwellenwerte zu bestimmen. Durch die Glättung des Histogramms kann Einfluss auf die Häufung lokaler Minima und damit die Anzahl an Klassen im Ergebnisbild genommen werden.
(1) | (2) | (3) | (4) |
(1) | (2) | (3) |
histo_to_thresh kann genutzt werden, um die automatisch berechneten Schwellenwerte ausgeben zu lassen.
Um dunklen Text auf hellem Hintergrund zu segmentieren, ist char_threshold ein nützliches Tool. Im Histogramm entspricht der Hintergrund dem globalen Maximum. Ohne geeignetes Minimum im unteren Grauwertbreich wird der Schwellenwert dann in Abhängigkeit von der Frequenz des maximalen Grauwerts mittels des Parameters Percent bestimmt.
(1) | (2) |
(3) | (4) |
Subtrahiert man zwei Bilder voneinander oder nutzt einen Operator wie laplace_of_gauss zur Kantendetektion, so entstehen üblicherweise Bilder mit negativen Pixelwerten. Zur Segmentierung solcher Bilder unter Berücksichtigung der Regionengröße ist der Operator dual_threshold geeignet.
(1) | (2) |
Im Gegensatz zur histogrammbasierten Schwellenwertsegmentierung berücksichtigt ein lokaler Schwellenwertoperator auch die Position oder Nachbarschaft eines Pixels. Statt globalen Schwellenwerten, die auf jeden Bildpunkt angewandt werden, ist es oft sinnvoll den Schwellenwert lokal an Bildmerkmale anzupassen.
local_threshold berücksichtigt für jedes Pixel lokale Mittelwerte und Standardabweichungen. Die Größe der einbezogenen Nachbarschaft wird vom Nutzer festgelegt. Dieser Operator eignet sich besonders für die Segmentierung von Text bei inhomogenen Belichtungsverhältnissen oder Hintergrund.
(1) | (2) |
(3) | (4) |
Der Operator var_threshold arbeitet nach einem ähnlichen Prinzip, verwendet allerdings lokale Helligkeit und Standardabweichung als Kriterien zur Segmentierung.
dyn_threshold kann verwendet werden, um die Unterschiede zwischen Bildern zu untersuchen. Üblicherweise werden dabei das Eingabebild und eine gefilterte Version des Originals (z.B. das Mittelwertbild) pixelweise verglichen. Der Parameter LightDark wird dabei dazu verwendet festzulegen welche Veränderungen im Bild relevant für den Nutzer sind. Die Sensitivität des Operators kann mit dem Parameter Offset gesteuert werden.
(1) | (2) |
(3) | (4) |
Um die absoluten Differenzen zwischen zwei Bildern zu untersuchen steht der Operator check_difference zur Verfügung. Er ist besonders geeignet für die Detektion von Veränderung in aufeinanderfolgenden Bildaufnahmen.
In Bildern, welche durch Operatoren wie laplace_of_gauss erzeugt werden, können Kanten an den Nulldurchgängen identifiziert werden. zero_crossing und zero_crossing_sub_pix liefern diese Kanten unter Berücksichtigung der Vierer-Nachbarschaft jedes Bildpunktes.
(1) | (2) |
(3) | (4) |
Operatoren |