Name
var_thresholdvar_thresholdVarThresholdvar_thresholdVarThresholdVarThreshold — Segmentieren mit Schwellen durch lokale Analyse von Mittelwert und
Standardabweichung.
Herror var_threshold(const Hobject Image, Hobject* Region, const Hlong MaskWidth, const Hlong MaskHeight, double StdDevScale, double AbsThreshold, const char* LightDark)
Herror T_var_threshold(const Hobject Image, Hobject* Region, const Htuple MaskWidth, const Htuple MaskHeight, const Htuple StdDevScale, const Htuple AbsThreshold, const Htuple LightDark)
Herror var_threshold(Hobject Image, Hobject* Region, const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& StdDevScale, const HTuple& AbsThreshold, const HTuple& LightDark)
HRegion HImage::VarThreshold(const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& StdDevScale, const HTuple& AbsThreshold, const HTuple& LightDark) const
HRegionArray HImageArray::VarThreshold(const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& StdDevScale, const HTuple& AbsThreshold, const HTuple& LightDark) const
void VarThreshold(const HObject& Image, HObject* Region, const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& StdDevScale, const HTuple& AbsThreshold, const HTuple& LightDark)
HRegion HImage::VarThreshold(Hlong MaskWidth, Hlong MaskHeight, const HTuple& StdDevScale, const HTuple& AbsThreshold, const HString& LightDark) const
HRegion HImage::VarThreshold(Hlong MaskWidth, Hlong MaskHeight, double StdDevScale, double AbsThreshold, const HString& LightDark) const
HRegion HImage::VarThreshold(Hlong MaskWidth, Hlong MaskHeight, double StdDevScale, double AbsThreshold, const char* LightDark) const
void HOperatorSetX.VarThreshold(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX** Region, [in] VARIANT MaskWidth, [in] VARIANT MaskHeight, [in] VARIANT StdDevScale, [in] VARIANT AbsThreshold, [in] VARIANT LightDark)
IHRegionX* HImageX.VarThreshold(
[in] Hlong MaskWidth, [in] Hlong MaskHeight, [in] VARIANT StdDevScale, [in] VARIANT AbsThreshold, [in] BSTR LightDark)
static void HOperatorSet.VarThreshold(HObject image, out HObject region, HTuple maskWidth, HTuple maskHeight, HTuple stdDevScale, HTuple absThreshold, HTuple lightDark)
HRegion HImage.VarThreshold(int maskWidth, int maskHeight, HTuple stdDevScale, HTuple absThreshold, string lightDark)
HRegion HImage.VarThreshold(int maskWidth, int maskHeight, double stdDevScale, double absThreshold, string lightDark)
Der Operator var_thresholdvar_thresholdVarThresholdvar_thresholdVarThresholdVarThreshold selektiert die Regionen des
Eingabebildes ImageImageImageImageImageimage, in denen die Bildpunkte eine
Schwellenwertbedingung erfüllen. Der Schwellenwert wird aus dem
Mittelwert und der Standardabweichung in einem lokalen Fenster der
Größe MaskWidthMaskWidthMaskWidthMaskWidthMaskWidthmaskWidth x MaskHeightMaskHeightMaskHeightMaskHeightMaskHeightmaskHeight um jeden Bildpunkt
(x,y) berechnet. Wenn MaskWidthMaskWidthMaskWidthMaskWidthMaskWidthmaskWidth oder MaskHeightMaskHeightMaskHeightMaskHeightMaskHeightmaskHeight
gerade Werte enthalten, werden die nächstgrößeren ungeraden Werte
genutzt. Das Maskenfenster sollte größer als die zu segmentierenden
Bildmerkmale sein und mindestens drei Pixel umfassen.
Sei g(x,y) der Grauwert des Eingabebildes ImageImageImageImageImageimage an der
Position (x,y) und m(x,y) sowie d(x,y) der korrespondierende
Mittelwert und die Standardabweichung der Grauwerte im Fenster um
den Bildpunkt und
v(x,y) = max( StdDevScaleStdDevScaleStdDevScaleStdDevScaleStdDevScalestdDevScale * d(x,y),AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold) für
StdDevScaleStdDevScaleStdDevScaleStdDevScaleStdDevScalestdDevScale >= 0
oder
v(x,y) = min( StdDevScaleStdDevScaleStdDevScaleStdDevScaleStdDevScalestdDevScale * d(x,y),AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold) für
StdDevScaleStdDevScaleStdDevScaleStdDevScaleStdDevScalestdDevScale < 0.
Die Standardabweichung wird als Maß für das Rauschen im Bild genutzt
und durch StdDevScaleStdDevScaleStdDevScaleStdDevScaleStdDevScalestdDevScale auf die gewünschte Empfindlichkeit
skaliert. Der Schwellenwert wird in Abhängigkeit vom Parameter
LightDarkLightDarkLightDarkLightDarkLightDarklightDark bestimmt durch:
LightDarkLightDarkLightDarkLightDarkLightDarklightDark = 'light'"light""light""light""light""light":
g(x,y) >= m(x,y) + v(x,y).
LightDarkLightDarkLightDarkLightDarkLightDarklightDark = 'dark'"dark""dark""dark""dark""dark":
g(x,y) <= m(x,y) - v(x,y).
LightDarkLightDarkLightDarkLightDarkLightDarklightDark = 'equal'"equal""equal""equal""equal""equal":
m(x,y) - v(x,y) <= g(x,y)
<= m(x,y) + v(x,y).
LightDarkLightDarkLightDarkLightDarkLightDarklightDark = 'not_equal'"not_equal""not_equal""not_equal""not_equal""not_equal":
m(x,y) - v(x,y) > g(x,y) oder g(x,y) > m(x,y) + v(x,y).
Alle Bildpunkte, die die obige Bedingung erfüllen, werden in einer
Ausgaberegion RegionRegionRegionRegionRegionregion zusammengefasst.
Ein sinnvoller Wertebereich für den Parameter StdDevScaleStdDevScaleStdDevScaleStdDevScaleStdDevScalestdDevScale
liegt zwischen -1.0 und 1.0. Empfohlen wird der Wert 0.2.
Wenn der Wert dieses Parameters zu groß oder zu klein gewählt wird,
kann eine komplett volle oder leere Region zurückgegeben werden. Der
Parameter AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold bildet eine zusätzliche Schwelle
für StdDevScaleStdDevScaleStdDevScaleStdDevScaleStdDevScalestdDevScale*d(x,y).
Ist StdDevScaleStdDevScaleStdDevScaleStdDevScaleStdDevScalestdDevScale*d(x,y) kleiner als AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold bei
positivem StdDevScaleStdDevScaleStdDevScaleStdDevScaleStdDevScalestdDevScale bzw. größer bei negativem
StdDevScaleStdDevScaleStdDevScaleStdDevScaleStdDevScalestdDevScale, wird stattdessen AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold verwendet.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
- Automatisch parallelisiert auf Domainebene.
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'
"dark"
"dark"
"dark"
"dark"
"dark"
Werteliste: 'dark'"dark""dark""dark""dark""dark", 'equal'"equal""equal""equal""equal""equal", 'light'"light""light""light""light""light", 'not_equal'"not_equal""not_equal""not_equal""not_equal""not_equal"
Sei A die Größe der Eingaberegion, dann beträgt die Laufzeit O(A).
var_thresholdvar_thresholdVarThresholdvar_thresholdVarThresholdVarThreshold 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_systemset_systemSetSystemset_systemSetSystemSetSystem kontrolliert werden. Wenn nötig wird eine
Ausnahmebehandlung vorgenommen.
dyn_thresholddyn_thresholdDynThresholddyn_thresholdDynThresholdDynThreshold,
thresholdthresholdThresholdthresholdThresholdThreshold
W.Niblack, “An Introduction to Digital Image Processing“, Page 115-116,
Englewood Cliffs, N.J., Prentice Hall, 1986
Foundation