Operatoren |
local_threshold — Segmentieren mit lokalen Schwellwertoperationen.
local_threshold(Image : Region : Method, LightDark, GenParamName, GenParamValue : )
local_threshold segmentiert ein einkanaliges Bild Image mit dem in Method angegebenen Verfahren und gibt die segmentierte Region zurück. Der Operator bietet momentan das Verfahren 'adapted_std_deviation' an. Dieses Verfahren ist ein lokales Schwellwertverfahren und liefert gute Ergebnisse auf Bildern von Dokumenten.
Bei der Wahl von 'adapted_std_deviation' als Verfahren in Method wird ein lokal adaptives Schwellwertverfahren basierend auf lokalem Mittelwert und Standardabweichung durchgeführt. Dieses Verfahren kann zum Beispiel Bilder von Dokumenten segmentieren, die durch Veränderungen in der Beleuchtung, durch Rauschen oder andere Effekte beeinflusst wurden. Es erlaubt die Segmentierung von Text auf inhomogenem Hintergrund durch Berücksichtigung des lokalen Kontrastes. Für die Segmentierung des dunklen Vordergunds (siehe Parameter LightDark) wird für ein Pixel an Position (r,c) die lokale Schwelle T(r,c) in einem Fenster der Größe mask_size x mask_size (siehe 'mask_size' ) wie folgt berechnet:
Bei hohem Kontrast in der Nachbarschaft des Punktes (r,c) hat die Standardabweichung einen Wert nahe bei R, was zu einer Schwelle T(r,c) nahe dem lokalen Mittelwert führt. Bei niedrigem Kontrast ist die lokale Schwelle kleiner als der lokale Mittelwert. Für dunklen Text auf hellem Hintergrund der auch dunkle Regionen enthält, erlaubt dies die Segmentierung des Textes auch in den dunkleren Bereichen.
Der Parameter LightDark steuert, ob helle oder dunkle Strukturen segmentiert werden sollen.
Für LightDark = 'dark' werden dunkle Strukturen vor einem hellen Hintergrund segmentiert. Jedes Pixel p(r,c) dessen Grauwert größer als die lokale Schwelle T(r,c) ist wird selektiert.
Für LightDark = 'light' werden helle Strukturen vor einem dunklen Hintergrund segmentiert. Das Ergebnis ist im wesentlichen das gleiche, wie wenn man das Bild invertieren würde und dann den Parameter LightDark auf 'dark' setzen würde.
Mit Hilfe der generischen Parameter GenParamName und GenParamValue können folgende Parameter des Verfahrens beinflusst werden:
bestimmt die Maskengröße, also die Größe der Nachbarschaft, in der die lokale Schwelle bestimmt wird. Je kleiner die Maskengröße ist, umso dünner werden segmentierte Strukturen. 'mask_size' sollte größer als die Strichbreite der zu segmentierenden Zeichen oder Strukturen gesetzt werden. Ist 'mask_size' gerade, wird die nächst höhere ungerade Größe verwendet.
Vorgeschlagene Werte: 15 (default), 21, 31
bestimmt den Parameter k (), der kontrolliert wie stark der Schwellwert vom lokalen Mittelwert abweicht. Kleinere Werte für 'scale' führen dazu, dass auch Strukturen segmentiert werden, die einen geringeren Kontrast zum Hintergrund aufweisen. Größere Werte führen zur Unterdrückung von Artefakten.
Vorgeschlagene Werte: 0.2 (default), 0.3, 0.5
bestimmt den maximalen Wert der Standardabweichung R. Dieser Wert sollte an den erwarteten Grauwertbereich angepasst werden. Als Faustregel kann der Wert für 'range' auf gesetzt werden, wobei MinGray und MaxGray die minimalen und maximalen Grauwerte sind, die mit min_max_gray bestimmt werden können.
Vorgeschlagene Werte: 128 (default) für byte-Bilder, 32767.5 (default) für uint2-Bilder
Eingabebild.
Segmentierte Ausgaberegion.
Auswahl des Verfahrens.
Defaultwert: 'adapted_std_deviation'
Werteliste: 'adapted_std_deviation'
Segmentierung des Vordergunds oder des Hintergrunds.
Defaultwert: 'dark'
Werteliste: 'dark' , 'light'
Liste der generischen Parameter.
Defaultwert: []
Werteliste: 'mask_size' , 'range' , 'scale'
Liste der Werte für die generischen Parameter.
Defaultwert: []
Wertevorschläge: 0.2, 15, 30, 128.0
connection, select_shape, select_gray
auto_threshold, binary_threshold, char_threshold
J. Sauvola, M. Pietikäinen, „Adaptive document image binarization", Pattern Recognition, 33, 225-236 (2000)
Foundation
Operatoren |