background_segbackground_segBackgroundSegBackgroundSeg (Operator)
Name
background_segbackground_segBackgroundSegBackgroundSeg — Ermitteln zusammenhängender Regionen des Hintergrundes.
Signatur
Beschreibung
background_segbackground_segBackgroundSegBackgroundSegBackgroundSeg liefert zusammenhängende
Hintergrundregionen. Die Prozedur wird typischerweise nach der
Kantensuche (inkl. Verdünnung) angewandt, um die von den Kanten
begrenzten Bild-Segmente zu ermitteln. Die Berechnung der
Zusammenhangskomponenten erfolgt mit der 4-er Nachbarschaft.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
ForegroundForegroundForegroundForegroundforeground (input_object) region(-array) → objectHRegionHRegionHobject
Regionkanten.
BackgroundRegionsBackgroundRegionsBackgroundRegionsBackgroundRegionsbackgroundRegions (output_object) region-array → objectHRegionHRegionHobject *
Die zusammenhängenden Hintergrundkomponenten
in Foreground.
Beispiel (HDevelop)
* Simulation of background_seg:
background_seg(Foreground,BackgroundRegions)
complement(Foreground,Background)
get_system('neighborhood',Save)
set_system('neighborhood',4)
connection(Background,BackgroundRegions)
set_system('neighborhood',Save)
* Segmentation with edge filter:
read_image(Image,'fabrik')
sobel_dir(Image,Sobel,Dir,'sum_sqrt',3)
threshold(Sobel,Edges,20,255)
skeleton(Edges,Margins)
background_seg(Margins,Regions)
Beispiel (C)
/* Segmentation with edge filter: */
read_image(&Image,"fabrik");
sobel_dir(Image,&Sobel,&Dir,"sum_sqrt",3);
threshold(Sobel,&Edges,20,255);
skeleton(Edges,&Margins);
background_seg(Margins,&Regions);
Beispiel (HDevelop)
* Simulation of background_seg:
background_seg(Foreground,BackgroundRegions)
complement(Foreground,Background)
get_system('neighborhood',Save)
set_system('neighborhood',4)
connection(Background,BackgroundRegions)
set_system('neighborhood',Save)
* Segmentation with edge filter:
read_image(Image,'fabrik')
sobel_dir(Image,Sobel,Dir,'sum_sqrt',3)
threshold(Sobel,Edges,20,255)
skeleton(Edges,Margins)
background_seg(Margins,Regions)
Beispiel (HDevelop)
* Simulation of background_seg:
background_seg(Foreground,BackgroundRegions)
complement(Foreground,Background)
get_system('neighborhood',Save)
set_system('neighborhood',4)
connection(Background,BackgroundRegions)
set_system('neighborhood',Save)
* Segmentation with edge filter:
read_image(Image,'fabrik')
sobel_dir(Image,Sobel,Dir,'sum_sqrt',3)
threshold(Sobel,Edges,20,255)
skeleton(Edges,Margins)
background_seg(Margins,Regions)
Beispiel (HDevelop)
* Simulation of background_seg:
background_seg(Foreground,BackgroundRegions)
complement(Foreground,Background)
get_system('neighborhood',Save)
set_system('neighborhood',4)
connection(Background,BackgroundRegions)
set_system('neighborhood',Save)
* Segmentation with edge filter:
read_image(Image,'fabrik')
sobel_dir(Image,Sobel,Dir,'sum_sqrt',3)
threshold(Sobel,Edges,20,255)
skeleton(Edges,Margins)
background_seg(Margins,Regions)
Komplexität
Sei F die Fläche des Hintergrundes, H die Bildhöhe und N die
Anzahl der Ergebnisregionen, dann ist die Laufzeitkomplexität:
O(H + sqrt(F) * sqrt(N)).
Ergebnis
background_segbackground_segBackgroundSegBackgroundSegBackgroundSeg liefert normalerweise den Wert 2 (H_MSG_TRUE). Das
Verhalten bei leerer Eingabe (keine Eingaberegionen vorhanden)
lässt sich mittels
set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>), das bei
leerer Region mit
set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
thresholdthresholdThresholdThresholdThreshold,
connectionconnectionConnectionConnectionConnection,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing,
pouringpouringPouringPouringPouring,
class_ndim_normclass_ndim_normClassNdimNormClassNdimNormClassNdimNorm
Nachfolger
select_shapeselect_shapeSelectShapeSelectShapeSelectShape
Alternativen
complementcomplementComplementComplementComplement,
connectionconnectionConnectionConnectionConnection
Siehe auch
thresholdthresholdThresholdThresholdThreshold,
hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThreshold,
skeletonskeletonSkeletonSkeletonSkeleton,
expand_regionexpand_regionExpandRegionExpandRegionExpandRegion,
set_systemset_systemSetSystemSetSystemSetSystem,
sobel_ampsobel_ampSobelAmpSobelAmpSobelAmp,
edges_imageedges_imageEdgesImageEdgesImageEdgesImage,
robertsrobertsRobertsRobertsRoberts,
bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImage
Modul
Foundation