Operator Reference

opening_circleopening_circleOpeningCircleOpeningCircleopening_circle (Operator)

opening_circleopening_circleOpeningCircleOpeningCircleopening_circle — Open a region with a circular structuring element.

Signature

opening_circle(Region : RegionOpening : Radius : )

Herror opening_circle(const Hobject Region, Hobject* RegionOpening, double Radius)

Herror T_opening_circle(const Hobject Region, Hobject* RegionOpening, const Htuple Radius)

void OpeningCircle(const HObject& Region, HObject* RegionOpening, const HTuple& Radius)

HRegion HRegion::OpeningCircle(const HTuple& Radius) const

HRegion HRegion::OpeningCircle(double Radius) const

static void HOperatorSet.OpeningCircle(HObject region, out HObject regionOpening, HTuple radius)

HRegion HRegion.OpeningCircle(HTuple radius)

HRegion HRegion.OpeningCircle(double radius)

def opening_circle(region: HObject, radius: Union[float, int]) -> HObject

Description

opening_circleopening_circleOpeningCircleOpeningCircleopening_circle is defined as an erosion followed by a Minkowski addition with a circular structuring element (see example). openingopeningOpeningOpeningopening serves to eliminate small regions (smaller than the circular structuring element) and to smooth the boundaries of a region.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Automatically parallelized on tuple level.

Parameters

RegionRegionRegionregionregion (input_object)  region(-array) objectHRegionHObjectHObjectHobject

Regions to be opened.

RegionOpeningRegionOpeningRegionOpeningregionOpeningregion_opening (output_object)  region(-array) objectHRegionHObjectHObjectHobject *

Opened regions.

RadiusRadiusRadiusradiusradius (input_control)  real HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Radius of the circular structuring element.

Default: 3.5

Suggested values: 1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 12.5, 15.5, 19.5, 25.5, 33.5, 45.5, 60.5, 110.5

Value range: 0.5 ≤ Radius Radius Radius radius radius ≤ 511.5 (lin)

Minimum increment: 1.0

Recommended increment: 1.0

Example (HDevelop)

* Large regions in an aerial picture (beech trees or meadows):
read_image (Image, 'forest_road')
threshold (Image, Region, 120, 255)
* Close the small gaps.
closing_circle (Region, RegionClosing, 3.5)
* Select the large regions.
opening_circle (RegionClosing, RegionOpening, 19.5)

Example (C)

/* simulation of opening_circle */
my_opening_circle(Hobject In, double Radius, Hobject *Out)
{
  Hobject Circle, tmp;
  gen_circle(&Circle,100.0,100.0,Radius);
  erosion1(Region,Circle,&tmp,1);
  minkowski_add1(tmp,Circle,&Out,1);
}

/* Large regions in an aerial picture (beech trees or meadows): */
read_image(&Image, "forest_road");
threshold(Image, &Region, 120.0, 255.0);
/* Close the small gaps. */
closing_circle(Region, &RegionClosing, 3.5);
/* Select the large regions. */
opening_circle(RegionClosing, &RegionOpening, 19.5);

Example (HDevelop)

* Large regions in an aerial picture (beech trees or meadows):
read_image (Image, 'forest_road')
threshold (Image, Region, 120, 255)
* Close the small gaps.
closing_circle (Region, RegionClosing, 3.5)
* Select the large regions.
opening_circle (RegionClosing, RegionOpening, 19.5)

Example (HDevelop)

* Large regions in an aerial picture (beech trees or meadows):
read_image (Image, 'forest_road')
threshold (Image, Region, 120, 255)
* Close the small gaps.
closing_circle (Region, RegionClosing, 3.5)
* Select the large regions.
opening_circle (RegionClosing, RegionOpening, 19.5)

Complexity

Let F1 be the area of the input region. Then the runtime complexity for one region is:

Result

opening_circleopening_circleOpeningCircleOpeningCircleopening_circle returns 2 ( H_MSG_TRUE) if all parameters are correct. The behavior in case of empty or no input region can be set via:

Otherwise, an exception is raised.

Possible Predecessors

thresholdthresholdThresholdThresholdthreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingregiongrowing, connectionconnectionConnectionConnectionconnection, union1union1Union1Union1union1, watershedswatershedsWatershedsWatershedswatersheds, class_ndim_normclass_ndim_normClassNdimNormClassNdimNormclass_ndim_norm

Possible Successors

reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain, select_shapeselect_shapeSelectShapeSelectShapeselect_shape, area_centerarea_centerAreaCenterAreaCenterarea_center, connectionconnectionConnectionConnectionconnection

Alternatives

openingopeningOpeningOpeningopening, dilation1dilation1Dilation1Dilation1dilation1, minkowski_add1minkowski_add1MinkowskiAdd1MinkowskiAdd1minkowski_add1, gen_circlegen_circleGenCircleGenCirclegen_circle

See also

transpose_regiontranspose_regionTransposeRegionTransposeRegiontranspose_region

Module

Foundation