connectionconnectionConnectionConnection (Operator)

Name

connectionconnectionConnectionConnection — Berechnen von zusammenhängenden Regionen.

Signatur

connection(Region : ConnectedRegions : : )

Herror connection(const Hobject Region, Hobject* ConnectedRegions)

Herror T_connection(const Hobject Region, Hobject* ConnectedRegions)

void Connection(const HObject& Region, HObject* ConnectedRegions)

HRegion HRegion::Connection() const

static void HOperatorSet.Connection(HObject region, out HObject connectedRegions)

HRegion HRegion.Connection()

Beschreibung

connectionconnectionConnectionConnectionConnection bestimmt die Zusammenhangskomponenten der Regionen in RegionRegionRegionRegionregion, zerlegt also die Regionen in zusammenhängende Bereiche. Die Nachbarschaft wird mit set_system('neighborhood',<4/8>)set_system("neighborhood",<4/8>)SetSystem("neighborhood",<4/8>)SetSystem("neighborhood",<4/8>)SetSystem("neighborhood",<4/8>) eingestellt. Voreingestellt ist die 8-ter Nachbarschaft, die für Vordergrund sinnvoll eingesetzt werden kann. Die maximale Anzahl von Zusammenhangskomponenten, die connectionconnectionConnectionConnectionConnection zurückliefert, kann mittels set_system('max_connection',<Num>)set_system("max_connection",<Num>)SetSystem("max_connection",<Num>)SetSystem("max_connection",<Num>)SetSystem("max_connection",<Num>) festgelegt werden. Die Voreinstellung von 0 bewirkt, dass alle Zusammenhangskomponenten zurückliefert werden. Die Umkehrung von connectionconnectionConnectionConnectionConnection für eine zusammenhängende Region ist union1union1Union1Union1Union1.

Ausführungsinformationen

Parameter

RegionRegionRegionRegionregion (input_object)  region(-array) objectHRegionHRegionHobject

Zu zerlegende Region.

ConnectedRegionsConnectedRegionsConnectedRegionsConnectedRegionsconnectedRegions (output_object)  region-array objectHRegionHRegionHobject *

Zusammenhängende Regionen.

Beispiel (HDevelop)

read_image(Image,'clip')
dev_set_colored(12)
threshold(Image,Dark,0,150)
count_obj(Dark,NumThresholded)
dev_display (Dark)
connection(Dark,ConnectedRegions)
count_obj(ConnectedRegions,NumConnected)
dev_display (ConnectedRegions)

Beispiel (C)

read_image(&Image,"monkey");
set_colored(WindowHandle,12);
threshold(Image,&Light,150.0,255.0);
count_obj(Light,&Number1);
printf("Number of regions after threshold = %d\n",Number1);
disp_region(Light,WindowHandle);
connection(Light,&Many);
count_obj(Many,&Number2);
printf("Number of regions after threshold = %d\n",Number2);
disp_region(Many,WindowHandle);

Beispiel (HDevelop)

read_image(Image,'clip')
dev_set_colored(12)
threshold(Image,Dark,0,150)
count_obj(Dark,NumThresholded)
dev_display (Dark)
connection(Dark,ConnectedRegions)
count_obj(ConnectedRegions,NumConnected)
dev_display (ConnectedRegions)

Beispiel (HDevelop)

read_image(Image,'clip')
dev_set_colored(12)
threshold(Image,Dark,0,150)
count_obj(Dark,NumThresholded)
dev_display (Dark)
connection(Dark,ConnectedRegions)
count_obj(ConnectedRegions,NumConnected)
dev_display (ConnectedRegions)

Beispiel (HDevelop)

read_image(Image,'clip')
dev_set_colored(12)
threshold(Image,Dark,0,150)
count_obj(Dark,NumThresholded)
dev_display (Dark)
connection(Dark,ConnectedRegions)
count_obj(ConnectedRegions,NumConnected)
dev_display (ConnectedRegions)

Komplexität

Sei F die Fläche der Eingaberegion und N die Anzahl der daraus erzeugten Zusammenhangskomponenten, dann ist die Laufzeitkomplexität: O(sqrt(F) * sqrt(N)).

Ergebnis

connectionconnectionConnectionConnectionConnection 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

auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThreshold, thresholdthresholdThresholdThresholdThreshold, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThreshold, erosion1erosion1Erosion1Erosion1Erosion1

Nachfolger

select_shapeselect_shapeSelectShapeSelectShapeSelectShape, select_grayselect_graySelectGraySelectGraySelectGray, shape_transshape_transShapeTransShapeTransShapeTrans, set_coloredset_coloredSetColoredSetColoredSetColored, dilation1dilation1Dilation1Dilation1Dilation1, count_objcount_objCountObjCountObjCountObj, reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain, add_channelsadd_channelsAddChannelsAddChannelsAddChannels

Alternativen

background_segbackground_segBackgroundSegBackgroundSegBackgroundSeg

Siehe auch

set_systemset_systemSetSystemSetSystemSetSystem, union1union1Union1Union1Union1

Modul

Foundation