| Operatoren |
var_threshold — Segmentieren mit Schwellen durch lokale Analyse von Mittelwert und Standardabweichung.
var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )
Mit var_threshold ist es möglich, Pixel des Eingabebildes Image zu selektieren, die
eine hohe lokale Standardabweichung (für positive StdDevScale), oder eine niedrige lokale Standardabweichung (für negative StdDevScale) aufweisen
und
lokal hell oder dunkel sind, gemäß LightDark.
Damit ist es möglich, Regionen in einem unregelmäßigen, verrauschten oder ungleichmäßig ausgeleuchteten Hintergrund zu finden.
Die Größe der Filtermaske, die durch MaskWidth und MaskHeight festgelegt wird, bestimmt die maximale Größe der Objekte, die segmentiert werden. Wenn die Maske allerdings zu groß ist, können Objekte, die dicht nebeneinander sind, miteinander verbunden werden.
| (1) | (2) |
| (3) | (4) |
Wenn MaskWidth oder MaskHeight gerade Werte enthalten, werden die nächstgrößeren ungeraden Werte genutzt. Insgesamt kann 3 als geringster sinnvoller Wert angesehen werden.
Die lokale Standardabweichung wird als Maß für das Rauschen im Bild genutzt. Sie kann durch StdDevScale auf die gewünschte Empfindlichkeit skaliert werden. Ein höherer Wert bedeutet, dass Pixel selektiert werden, die sich stark von ihrer Umgebung unterscheiden.
Ein sinnvoller Wertebereich für den Parameter StdDevScale liegt zwischen -1.0 und 1.0. Vorgeschlagen wird der Wert 0.2. Wenn der Wert zu groß oder zu klein gewählt wird, kann eine komplett volle oder leere Region zurückgegeben werden.
| (1) | (2) |
In homogenen Bereichen eines Bildes ist die Standardabweichung gering; der Einfluss von einzelnen Grauwerten ist daher sehr hoch. Um die Empfindlichkeit des Operators in homogenen Bereichen zu reduzieren, kann AbsThreshold angepasst werden. Damit können kleine Grauwertänderungen in homogenen Umgebungen ignoriert werden. Beachten Sie, falls Sie StdDevScale negativ wählen, sollte AbsThreshold entsprechend auch negativ sein.
Wenn 'light' oder 'dark' ausgewählt sind, werden jeweils alle Pixel selektiert, die heller bzw. dunkler als ihre Umgebung sind. 'equal' selektiert alle Pixel, die von keiner der beiden Einstellungen ausgewählt werden; also alle Pixel, die ihrer Umgebung recht ähnlich sind. 'not_equal' vereint alle Pixel von 'light' und 'dark'; es werden also alle Pixel selektiert, die sich von ihrer Umgebung unterscheiden.
| (1) | (2) |
var_threshold selektiert die Regionen des Eingabebildes Image, in denen die Bildpunkte eine Schwellenwertbedingung erfüllen. Der Schwellenwert wird aus dem Mittelwert und der Standardabweichung in einer lokalen Maske der Größe MaskWidth x MaskHeight um jeden Bildpunkt (x,y) berechnet.
Sei
g(x,y) der Grauwert des Eingabebildes Image an der Position (x,y),
m(x,y) der korrespondierende Mittelwert, und
d(x,y) die Standardabweichung der Grauwerte in der Maske um den Bildpunkt.
Der variable Schwellenwert v(x,y) ist dann definiert als
Interpretation: Für eine positive StdDevScale wird jeder Pixel analysiert. Es wird überprüft, ob der benutzerdefinierte Wert von AbsThreshold oder die skalierte Standardabweichung größer ist. Der größere Wert wird als variabler Schwellenwert v(x,y) genutzt. Für eine negative StdDevScale wird der jeweils kleinere Wert genutzt.
Welche Pixel basierend auf dem variablen Schwellenwert ausgewählt werden, bestimmt der Parameter LightDark:
LightDark = 'light':
Interpretation: Falls ein Pixel um v(x,y) heller ist als seine Umgebung, wird er selektiert.
LightDark = 'dark':
Interpretation: Falls ein Pixel um v(x,y) dunkler ist als seine Umgebung, wird er selektiert.
LightDark = 'equal':
Interpretation: Es werden genau die Pixel ausgewählt, die weder von 'light' noch von 'dark' ausgewählt werden, also die Pixel, die ihrer Umgebung recht ähnlich sind.
LightDark = 'not_equal':
Interpretation: Es werden alle Pixel von 'light' und 'dark' ausgewählt, also alle Pixel, die sich um v(x,y) von ihrer Umgebung unterscheiden.
Dieser Operator liefert eventuell unerwartete Resultate zurück, wenn ein Bild mit einer reduzierten Domäne als Input übergeben wird. Weitere Informationen können im Kapitel Filter gefunden werden.
Eingabebild.
Segmentierte Regionen.
Breite des Maskenfensters für Mittelwert- und Standardabweichungsberechnung.
Defaultwert: 15
Wertevorschläge: 9, 11, 13, 15
Restriktion: MaskWidth >= 1
Höhe des Maskenfensters für Mittelwert- und Standardabweichungsberechnung.
Defaultwert: 15
Wertevorschläge: 9, 11, 13, 15
Restriktion: MaskHeight >= 1
Faktor für die Standardabweichung der Grauwerte.
Defaultwert: 0.2
Wertevorschläge: -0.2, -0.1, 0.1, 0.2
Minimale Grauwertdifferenz zum Mittelwert.
Defaultwert: 2
Wertevorschläge: -2, -1, 0, 1, 2
Schwellenwerttyp.
Defaultwert: 'dark'
Werteliste: 'dark', 'equal', 'light', 'not_equal'
Sei A die Größe der Eingaberegion, dann beträgt die Laufzeit O(A).
var_threshold gibt 2 (H_MSG_TRUE) zurück, wenn alle Parameter korrekt angegeben sind. Das Verhalten bezüglich der Eingabebilder und Ausgaberegionen kann mit den Werten von 'no_object_result', 'empty_region_result', und 'store_empty_region' im Operator set_system kontrolliert werden. Wenn nötig wird eine Ausnahmebehandlung vorgenommen.
W.Niblack, “An Introduction to Digital Image Processing“, Page 115-116, Englewood Cliffs, N.J., Prentice Hall, 1986
Foundation
| Operatoren |