Herror ::closing_golay (
    Hobject Region,
    Hobject *RegionClosing,
    const HTuple &GolayElement,
    const HTuple &Rotation
)
HRegion HRegion::ClosingGolay (
    const HTuple &GolayElement,
    const HTuple &Rotation
) const
HRegionArray HRegionArray::ClosingGolay (
    const HTuple &GolayElement,
    const HTuple &Rotation
) const

Close a region with an element from the Golay alphabet.

::closing_golay is defined as a Minkowski addition followed by a Minkowski subtraction. First the Minkowski addition of the input region (Region) with the structuring element from the Golay alphabet defined by GolayElement and Rotation is computed. Then the Minkowski subtraction of the result and the structuring element rotated by 180 degrees is performed.

The following structuring elements are available:

'l', 'm', 'd', 'c', 'e', 'i', 'f', 'f2', 'h', 'k'.

The rotation number Rotation determines which rotation of the element should be used, and whether the foreground (even) or background version (odd) of the selected element should be used. The Golay elements, together with all possible rotations, are described with the operator ::golay_elements.

::closing_golay serves to close holes smaller than the structuring element, and to smooth regions' boundaries.


Attention

Not all values of Rotation are valid for any Golay element. For some of the values of Rotation, the resulting regions are identical to the input regions.


Parameters

Region (input_object)
region(-array) -> Hobject: HRegion(Array)
Regions to be closed.

RegionClosing (output_object)
region(-array) -> Hobject * : HRegion(Array)
Closed regions.

GolayElement (input_control)
string -> HTuple.char *
Structuring element from the Golay alphabet.
Default value: 'h'
List of values: 'l', 'm', 'd', 'c', 'e', 'i', 'f', 'f2', 'h', 'k'

Rotation (input_control)
integer -> HTuple.long
Rotation of the Golay element Depending on the element, not all rotations are valid.
Default value: 0
List of values: 0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15


Complexity

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

       O(6 * sqrt(F)) .


Result

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

  a) no region:    set_system('no_object_result',<RegionResult>)
  b) empty region: set_system('empty_region_result',<RegionResult>)
Otherwise, an exception is raised.


Possible Predecessors

::threshold, ::regiongrowing, ::connection, ::union1, ::watersheds, ::class_ndim_norm


Possible Successors

::reduce_domain, ::select_shape, ::area_center, ::connection


Alternatives

::closing


See also

::erosion_golay, ::dilation_golay, ::opening_golay, ::hit_or_miss_golay, ::thinning_golay, ::thickening_golay, ::golay_elements


Module

Morphology



Copyright © 1996-2002 MVTec Software GmbH