connectionconnectionConnectionConnection (Operator)

Name

connectionconnectionConnectionConnection — Compute connected components of a region.

Signature

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()

Description

connectionconnectionConnectionConnectionConnection determines the connected components of the input regions given in RegionRegionRegionRegionregion. The neighborhood used for this can be set via set_system('neighborhood',<4/8>)set_system("neighborhood",<4/8>)SetSystem("neighborhood",<4/8>)SetSystem("neighborhood",<4/8>)SetSystem("neighborhood",<4/8>). The default is 8-neighborhood, which is useful for determining the connected components of the foreground. The maximum number of connected components that is returned by connectionconnectionConnectionConnectionConnection can be set via set_system('max_connection',<Num>)set_system("max_connection",<Num>)SetSystem("max_connection",<Num>)SetSystem("max_connection",<Num>)SetSystem("max_connection",<Num>). The default value of 0 causes all connected components to be returned. The inverse operator of connectionconnectionConnectionConnectionConnection is union1union1Union1Union1Union1.

Execution Information

Parameters

RegionRegionRegionRegionregion (input_object)  region(-array) objectHRegionHRegionHobject

Input region.

ConnectedRegionsConnectedRegionsConnectedRegionsConnectedRegionsconnectedRegions (output_object)  region-array objectHRegionHRegionHobject *

Connected components.

Example (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)

Example (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);

Example (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)

Example (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)

Example (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)

Complexity

Let F be the area of the input region and N be the number of generated connected components. Then the runtime complexity is O(sqrt(F) * sqrt(N)).

Result

connectionconnectionConnectionConnectionConnection always returns the value 2 (H_MSG_TRUE). The behavior in case of empty input (no regions given) can be set via 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>) and the behavior in case of an empty input region via 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>). If necessary, an exception is raised.

Possible Predecessors

auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThreshold, thresholdthresholdThresholdThresholdThreshold, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThreshold, erosion1erosion1Erosion1Erosion1Erosion1

Possible Successors

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

Alternatives

background_segbackground_segBackgroundSegBackgroundSegBackgroundSeg

See also

set_systemset_systemSetSystemSetSystemSetSystem, union1union1Union1Union1Union1

Module

Foundation