segment_image_mser
— Segmentieren von Maximally Stable Extremal Regions (MSER).
segment_image_mser(Image : MSERDark, MSERLight : Polarity, MinArea, MaxArea, Delta, GenParamName, GenParamValue : )
segment_image_mser
segmentiert ein Bild in Regionen mit homogenen
Grauwerten. Dies erfolgt mit Hilfe der Methode der Maximally Stable Extremal
Regions (MSER). Die Homogenität einer Region wird bestimmt, indem ihre lokale
Umgebung betrachtet wird. Der Operator ist daher besonders für die
Segmentierung von Objekten vor einem inhomogenen Hintergrund und für
Anwendungen mit wechselnder Beleuchtung geeignet.
Parameter
Polarity
Der Parameter Polarity
bestimmt, ob MSERs extrahiert
werden, die dunkler als ihre Umgebung sind, oder solche, die heller
als ihre Umgebung sind.
Wert | Bedeutung |
---|---|
'dark' | Es werden nur MSERs extrahiert, die dunkler als ihre Umgebung sind. |
'light' | Es werden nur MSERs extrahiert, die heller als ihre Umgebung sind. |
'both' (Defaultwert) | Es werden beide Arten von MSERs extrahiert. |
MinArea
, MaxArea
Die Parameter MinArea
und MaxArea
beschränken die
Größe der zurückgegebenen MSERs.
Sehr kleine Werte von MinArea
, z.B. Werte kleiner als 5,
können zu deutlich höheren Laufzeiten führen. Dies gilt insbesondere
dann, wenn das zu segmentierende Bild starkes Rauschen enthält.
Wird für MaxArea
ein leeres Tupel übergeben (Default),
werden nur MSERs zurückgegeben die echte Teilmengen der
Zusammenhangskomponenten des Bilddefinitionsbereiches sind.
Delta
Der Parameter Delta
beeinflusst die Selektivität des
Verfahrens. Größere Werte erhöhen die Selektivität und führen zu
weniger MSERs. Kleinere Werte führen zu mehr MSERs.
Eine genauere Beschreibung der Parameter und ihrer Auswirkungen findet sich im Abschnitt Segmentierungsprozess.
Die folgenden generischen Parameter können die für eine Feinanpassung
der MSER-Segmentierung verwendet werden. Die generischen Parameter
können mittels GenParamName
und GenParamValue
gesetzt werden.
Die maximale Variation der Fläche einer Region im Bereich von
Delta
Schwellwerten. Größere Werte führen zu
mehr MSERs. Kleinere Werte führen zu weniger MSERs.
Eine Definition des Begriffs 'variation' sowie eine genauere Beschreibung des generischen Parameters 'max_variation' und seiner Auswirkungen findet sich im Abschnitt Segmentierungsprozess.
Werte: reelle Werte größer gleich 0.0
Vorgeschlagene Werte: 0.1, 0.2, 0.5, 1.0, 2.0, 5.0
Defaultwert: 0.2
Die Verschiedenartigkeit (minimale relative Größendifferenz oder 'diversity') zweier sich überlappender MSERs. Kleinere Werte führen zu mehr MSERs. Größere Werte führen zu weniger MSERs.
Eine Definition des Begriffs Verschiedenartigkeit ('diversity') sowie eine genauere Beschreibung des generischen Parameters 'min_diversity' und seiner Auswirkungen findet sich im Abschnitt Segmentierungsprozess.
Werte: reelle Werte größer gleich 0.0
Vorgeschlagene Werte: 0.1, 0.5, 0.8, 1.0, 2.0, 5.0
Defaultwert: 0.8
Steuert die Behandlung von Regionen, die den Rand des Definitionsbereiches des Eingabebildes berühren.
Wird der Parameter 'may_touch_border' auf 'false' gesetzt, so werden alle Regionen verworfen, die den Rand des Definitionsbereiches berühren. Wird der Parameter 'may_touch_border' auf 'true' gesetzt, so werden solche Regionen zurück gegeben.
Werte: 'false' , 'true'
Defaultwert: 'false' , wenn der maximale Definitionsbereiches eines Bildes verwendet wird; 'true' , wenn der Definitionsbereiche reduziert wird.
Die Werte 'min_gray' und 'max_gray' reduzieren den
Eingabedefinitionsbereich dynamisch durch die Anwendung eines
Schwellenwertes (threshold
) auf dem Eingabebild.
Alle Pixel außderhalb des angegebenen Grauwertbereiches werden bei
der Segmentierung nicht beachtet. Dadurch kann die Laufzeit erheblich
reduziert werden.
Bitte beachten Sie, dass falls das Eingabebild Image
einen
maximalen Definitionsbereich hat, der durch Eingabe von
'min_gray' und 'max_gray' verkleinert wird, kann die
Standardeinstellung von 'may_touch_border' dazu führen, dass
mehr Ergebnisregionen zurückgegeben werden, als ohne Einschränkung des
Graubereiches.
Werte: ganzzahlige Werte größer gleich 0
Defaultwert: 'min_gray' : 0, 'max_gray' : 255 für Byte-Bilder, 65535 für uint2-Bilder
Der maximale Grauwert der Pixel, die im Segmentierungsprozess berücksichtigt werden sollen. Wird der Parameter auf einen Wert kleiner als der größte im Bild vorkommenden Grauwert gesetzt, werden alle Pixel mit Grauwerten größer als dieser Wert bei der Extraktion der MSER ignoriert. Dadurch kann die Laufzeit erheblich reduziert werden. Bitte beachten Sie, dass das Bild mit den gesetzten Schwellenwerten in einem Vorverarbeitungsschritt segmentiert wird. Dadurch entsteht eine neue Bilddomäne mit einem neuen Rand. Deswegen kann es notwendig sein 'may_touch_border' auf 'true' zu setzen um die gewünschten Regionen zu erhalten.
Werte: ganzzahlige Werte größer gleich 0.
Vorgeschlagene Werte: 200, 230
Defaultwert: 255 für Bilder vom Typ byte und 65535 für Bilder vom Typ uint2.
Segmentierungsprozess
In einem ersten Schritt wird das Eingabebild mit allen Schwellwerten t, von 0 bis zum maximal vorkommenden Grauwert, segmentiert.
Zur Erläuterung wird im folgenden Beispiel ein Eingabebild mit zwölf Grauwerten (0...11) verwendet. Auf der rechten Seite der folgenden Abbildung sind die Ränder der resultierenden Schwellwert-Regionen dargestellt.
|
|
Die resultierenden Schwellwert-Regionen werden in ihre
Zusammenhangskomponenten (4-er Nachbarschaft) zerlegt. Da die einzelnen
Komponenten durch wachsende Schwellwerte entstehen, nimmt ihre Fläche mit
jedem neuen Schwellwert zu. Diese Flächenveränderung der einzelen
Komponenten wird im Folgenden ausgewertet. Eine MSER ist eine Komponente,
deren Fläche im Bereich von Delta
Schwellwerten nicht signifikant variiert. Um als MSER akzeptiert zu werden,
muss die Variation der Fläche ein lokales Minimum sein, und sie darf nicht
größer als 'max_variation' sein. Darüberhinaus muss die
Verschiedenartigkeit ('diversity') von sich überlappenden MSERs größer als
'min_diversity' sein (siehe unten).
Die Variation der Fläche einer Komponente ist wie folgt definiert:
Ein Verkleinern des Wertes von 'max_variation' führt zu einer geringeren Anzahl akzeptierter Regionen.
In unserem Beispiel besteht jede Region nur aus einer einzigen Komponente.
Daher werden die Bezeichungen (Schwellwert-)Region und Komponente im
Folgenden synonym verwendet. Die folgende Tabelle zeigt die Fläche der
Schwellwert-Regionen und ihre Variation für Delta
gleich 1 und für
Delta
gleich 2.
Schwellwert t | Schwellwert-Region | Fläche der Schwellwert-Region |
Variation der Fläche (für Delta = 1)
|
Variation der Fläche (für Delta = 2)
|
---|---|---|---|---|
0 |
|
320 | 0.28 | 0.53 |
1 | |
410 | 0.41 | 0.54 |
2 | |
490 | 0.27 | 0.49 |
3 | |
540 | 0.13 | 0.31 |
4 | |
560 | 0.07 | 0.25 |
5 | |
580 | 0.12 | 0.29 |
6 | |
630 | 0.21 | 0.38 |
7 | |
710 | 0.24 | 0.44 |
8 | |
800 | 0.23 | 0.41 |
9 | |
890 | 0.18 | 1.67 |
10 | |
960 | 1.36 | 1.46 |
11 | |
2200 | 0.56 | 0.60 |
Die Fläche der Schwellwert-Regionen steigt mit wachsendem Schwellwert t an.
Für Delta
gleich 1, treten lokale Minima der Variation für die
Schwellwerte t = 0, t = 4, t = 9 und t = 11 auf. Daher sind die
entsprechenden Schwellwert-Regionen MSER-Kandidaten. Für Delta
gleich 2 entsprechen die MSER-Kandidaten den Schwellwert-Regionen für t = 0,
t = 4, t = 8 und t = 11.
Standardmäßig werden die Zusammenhangskomponenten des Definitionsbereichs
nicht als MSERs zurückgegeben. Dieses
Verhalten kann dadurch geändert werden, dass 'may_touch_border' auf
'true' und MaxArea
auf einen Wert größer der Fläche des
Definitionsbereichs, gesetzt wird. Auf diese Weise können auch die
Zusammenhangskomponenten selbst als MSERs extrahiert werden. In unserem
Beispiel führt das Standardverhalten dazu, dass die MSER-Kandidaten die den
Schwellwert-Regionen für t = 11 entsprechen, eliminiert werden.
Die folgende Abbildung zeigt die resultierenden MSER-Kandidaten für
Delta
gleich 1 und für Delta
gleich 2 (mit
'max_variation' gleich 1.0). Die MSERs sind dabei jeweils dem
Eingabebild überlagert.
MSER-Kandidaten für Delta gleich 1 | MSER-Kandidaten für Delta gleich 2 |
---|---|
|
|
|
|
|
|
Die Segmentierungsmethode teilt das Bild nicht in disjunkte Regionen, sondern extrahiert alle gültigen MSERs, welche sich im Allgemeinen auch überlappen dürfen. Nachdem die MSER-Kandidaten durch wachsende Schwellwerte entstehen, bestehen zwei sich überlappende Regionen immer aus einer größeren und einer kleineren Region, wobei die kleinere komplett in der größeren enthalten ist. Die Verschiedenartigkeit ('diversity') beschreibt, wie stark sich die Flächen der sich überlappenden Regionen unterscheiden. Sie wird als relative Flächendifferenz berechnet:
Es werden nur MSER-Kandidaten zurück gegeben, deren Verschiedenartigkeit ('diversity') mindestens dem Wert 'min_diversity' entspricht. Der Parameter 'min_diversity' kann daher verwendet werden, um die Anzahl sich überlappender Regionen zu steuern. Größere Werte für 'min_diversity' reduzieren die Anzahl sich überlappender Regionen und kleinere Werte erhöhen diese Anzahl. Die jeweils größten MSER-Kandidaten, d.h. die Kandidaten, die nicht in einem anderen enthalten sind, werden aber in jedem Fall zurück gegeben.
Delta = 1 | Delta = 2 | |||||||
---|---|---|---|---|---|---|---|---|
Index i des MSER-Kandidaten | Schwellwert t | Fläche der Schwellwert-Region | Verschiedenartigkeit ('diversity') des MSER-Kandidaten | Index i des MSER-Kandidaten | Schwellwert t | Fläche der Schwellwert-Region | Verschiedenartigkeit ('diversity') des MSER-Kandidaten | |
0 | 0 | 320 | 0.75 | 0 | 0 | 320 | 0.75 | |
1 | 4 | 560 | 0.59 | 1 | 4 | 560 | 0.43 | |
2 | 9 | 890 | N/A | 2 | 8 | 800 | N/A |
Zuerst wird der MSER-Kandidat mit der kleinsten Verschiedenartigkeit ('diversity') gelöscht, falls sein Wert kleiner als 'min_diversity' ist. In unserem Beispiel wurde der Wert für 'min_diversity' auf 0.5 gesetzt. Für Delta gleich 2 wird daher der MSER-Kandidat mit der Verschiedenartigkeit 0.43 gelöscht. Daraufhin werden die Werte für die Verschiedenartigkeit der verbleibenden MSER-Kandidaten neu berechnet. Hierbei erhält der MSER-Kandidat 0 einen Wert von 1.5. Damit haben jetzt alle MSER-Kandidaten eine Verschiedenartigkeit die größer als 0.5 ist und werden als MSERs akzeptiert.
Das Segmentierungverfahren berechnet MSERs innerhalb jeder Zusammenhangskomponente des Definitionsbereiches des Eingabebildes.
Dieser Operator unterstützt Cancel-Timeouts und Interrupts.
Image
(input_object) singlechannelimage →
object (byte / uint2)
Eingabebild.
MSERDark
(output_object) region-array →
object
Segmentierte dunkle MSERs.
MSERLight
(output_object) region-array →
object
Segmentierte helle MSERs.
Polarity
(input_control) string →
(string)
Polarität der segmentierten MSERs.
Defaultwert: 'both'
Werteliste: 'both' , 'dark' , 'light'
MinArea
(input_control) number(-array) →
(integer / real)
Minimale Fläche der MSERs.
Defaultwert: 10
Wertevorschläge: 1, 10, 100, 10000
Typischer Wertebereich: 1
≤
MinArea
MaxArea
(input_control) number(-array) →
(integer / real)
Maximale Fläche der MSERs.
Defaultwert: []
Wertevorschläge: 1, 10, 100, 10000
Typischer Wertebereich: 1
≤
MaxArea
Delta
(input_control) number →
(integer / real)
Bereich von Delta
Schwellwerten, für den eine MSER stabil sein muss.
Defaultwert: 15
Wertevorschläge: 5, 10, 20, 50
Typischer Wertebereich: 1
≤
Delta
≤
65535
GenParamName
(input_control) attribute.name-array →
(string)
Namen der generischen Parameter.
Defaultwert: []
Werteliste: 'max_gray' , 'max_variation' , 'may_touch_border' , 'min_diversity' , 'min_gray'
GenParamValue
(input_control) attribute.value-array →
(string / real / integer)
Werte der generischen Parameter.
Defaultwert: []
Wertevorschläge: 0.5, 0.8, 'true' , 'false' , 30, 50, 200, 230
read_image (Image,'pellets') segment_image_mser (Image, MSERDark, MSERLight, 'light', 1000, 10000, 3, [],[])
Sind alle Eingabeparameter korrekt, gibt segment_image_mser
den Wert
2 (H_MSG_TRUE) zurück. Andernfalls wird eine Fehlerbehandlung durchgeführt.
auto_threshold
,
binary_threshold
,
char_threshold
,
local_threshold
,
watersheds
,
regiongrowing
J. Matas, O. Chum, M. Urban, and T. Pajdla: „Robust wide baseline stereo from maximally stable extremal regions.“; Proc. of British Machine Vision Conference, pages 384-396; 2002.
Foundation