Name
dyn_thresholddyn_thresholdDynThresholdDynThreshold — Segmentieren mit lokalem Schwellenwert.
void DynThreshold(const HObject& OrigImage, const HObject& ThresholdImage, HObject* RegionDynThresh, const HTuple& Offset, const HTuple& LightDark)
HRegion HImage::DynThreshold(const HImage& ThresholdImage, const HTuple& Offset, const HString& LightDark) const
HRegion HImage::DynThreshold(const HImage& ThresholdImage, double Offset, const HString& LightDark) const
HRegion HImage::DynThreshold(const HImage& ThresholdImage, double Offset, const char* LightDark) const
dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThreshold wählt aus den Eingabebildern die
Bildpunkte (g_{o} = g_{OrigImageOrigImageOrigImageOrigImageorigImage}) aus, die der
Schwellenwertbedingung genügen. Sei g_{t} =
g_{ThresholdImageThresholdImageThresholdImageThresholdImagethresholdImage} dann lautet diese Bedingung bei
LightDarkLightDarkLightDarkLightDarklightDark = 'light':
Bei LightDarkLightDarkLightDarkLightDarklightDark = 'dark' lautet sie:
Bei LightDarkLightDarkLightDarkLightDarklightDark = 'equal':
Und bei LightDarkLightDarkLightDarkLightDarklightDark = 'not_equal':
Typischerweise werden als Vergleichskomponenten das Original und
eine geglättete Version eines Bildes verwendet (z.B.
mean_imagemean_imageMeanImageMeanImageMeanImage, binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFilter,
etc.). Dann entspricht dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThreshold in seiner Wirkung etwa
der Anwendung von thresholdthresholdThresholdThresholdThreshold auf ein hochpassgefiltertes Bild
(highpass_imagehighpass_imageHighpassImageHighpassImageHighpassImage).
Es lassen sich Objektkanten finden, wobei die Größe (Durchmesser)
der gesuchten Objekte durch die Maskengröße des Tiefpassfilters
und die Steigung, bzw. Amplitude der Kante festgelegt wird.
Je größer der Maskendurchmesser gewählt wird, desto größer sind
die gefundenen Regionen. Als Faustregel sollte die Maskengröße
etwa doppelt so groß wie der Durchmesser der gesuchten Objekte
sein. Es ist wichtig, den Parameter OffsetOffsetOffsetOffsetoffset nicht auf
Null zu setzen, da dann zu viele kleine Regionen gefunden werden
(Rauschen). Sinnvoll sind Werte, die betragsmäßig zwischen 5 und
40 liegen. Je größer OffsetOffsetOffsetOffsetoffset gewählt wird, desto
weniger Punkte werden gefunden und umso kleiner werden die
Regionen.
Alle Punkte eines Eingabebildes, die die obige Bedingung erfüllen,
werden gemeinsam als eine Region abgespeichert. Die
Zusammenhangskomponenten können gegebenenfalls mit
connectionconnectionConnectionConnectionConnection berechnet werden.
Wird OffsetOffsetOffsetOffsetoffset auf -1 .. 1 gesetzt, dann
wird i.a. eine sehr verrauschte Region erzeugt, die viel
Speicherplatz benötigt. Wird OffsetOffsetOffsetOffsetoffset zu groß gewählt
(etwa > 60), dann kann es vorkommen, dass kein Punkt die
Schwellenwertbedingung erfüllt (also eine leere Region berechnet
wird). Wird OffsetOffsetOffsetOffsetoffset zu klein gewählt (etwa < -60) dann
können alle Punkte die Schwellenwertbedingung erfüllen. Es wird
also eine maximale Region erzeugt.
- 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.
Bild mit den lokalen Werten.
Schwellenwert für die Segmentation.
Defaultwert: 5.0
Wertevorschläge: 1.0, 3.0, 5.0, 7.0, 10.0, 20.0, 30.0
Typischer Wertebereich: -255.0
≤
Offset
Offset
Offset
Offset
offset
≤
255.0 (lin)
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 5
Restriktion: -255 < Offset && Offset < 255
Helle,dunkle oder ähnliche Bereiche suchen.
Defaultwert:
'light'
"light"
"light"
"light"
"light"
Werteliste: 'dark'"dark""dark""dark""dark", 'equal'"equal""equal""equal""equal", 'light'"light""light""light""light", 'not_equal'"not_equal""not_equal""not_equal""not_equal"
* Looking for regions with the diameter D
mean_image(Image,Mean,D*2+1,D*2+1)
dyn_threshold(Image,Mean,Seg,5,'light')
connection(Seg,Regions)
/* Looking for regions with the diameter D */
mean_image(Image,&Mean,D*2+1,D*2+1);
dyn_threshold(Image,Mean,&Seg,5.0,"light");
connection(Seg,&Region);
* Looking for regions with the diameter D
mean_image(Image,Mean,D*2+1,D*2+1)
dyn_threshold(Image,Mean,Seg,5,'light')
connection(Seg,Regions)
* Looking for regions with the diameter D
mean_image(Image,Mean,D*2+1,D*2+1)
dyn_threshold(Image,Mean,Seg,5,'light')
connection(Seg,Regions)
* Looking for regions with the diameter D
mean_image(Image,Mean,D*2+1,D*2+1)
dyn_threshold(Image,Mean,Seg,5,'light')
connection(Seg,Regions)
Sei A die Fläche der Eingaberegion, dann ist die
Laufzeitkomplexität O(A)
dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThreshold liefert den Wert 2 (H_MSG_TRUE), falls die
Parameter korrekt sind. Für das Verhalten bzgl. der Eingabebilder
und Ausgaberegionen sind die Flags 'no_object_result'"no_object_result""no_object_result""no_object_result""no_object_result",
'empty_region_result'"empty_region_result""empty_region_result""empty_region_result""empty_region_result" und 'store_empty_region'"store_empty_region""store_empty_region""store_empty_region""store_empty_region"
einstellbar (siehe set_systemset_systemSetSystemSetSystemSetSystem). Gegebenenfalls wird
eine Fehlerbehandlung durchgeführt.
mean_imagemean_imageMeanImageMeanImageMeanImage,
smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImage,
binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilter,
gauss_filtergauss_filterGaussFilterGaussFilterGaussFilter
connectionconnectionConnectionConnectionConnection,
select_shapeselect_shapeSelectShapeSelectShapeSelectShape,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain,
select_grayselect_graySelectGraySelectGraySelectGray,
rank_regionrank_regionRankRegionRankRegionRankRegion,
dilation1dilation1Dilation1Dilation1Dilation1,
openingopeningOpeningOpeningOpening,
erosion1erosion1Erosion1Erosion1Erosion1
check_differencecheck_differenceCheckDifferenceCheckDifferenceCheckDifference,
thresholdthresholdThresholdThresholdThreshold
highpass_imagehighpass_imageHighpassImageHighpassImageHighpassImage,
sub_imagesub_imageSubImageSubImageSubImage
Foundation