Herror ::thickening_seq (
    Hobject Region,
    Hobject *RegionThick,
    const HTuple &GolayElement,
    const HTuple &Iterations
)
HRegion HRegion::ThickeningSeq (
    const HTuple &GolayElement,
    const HTuple &Iterations
) const
HRegionArray HRegionArray::ThickeningSeq (
    const HTuple &GolayElement,
    const HTuple &Iterations
) const

Add the result of a hit-or-miss operation to a region (sequential).

::thickening_seq calculates the sequential thickening of the input regions with a structuring element from the Golay alphabet (GolayElement). To do so, ::thickening_seq calls the operator ::thickening_golay with all possible rotations of the structuring element Iterations times. The following structuring elements are available:

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

The Golay elements, together with all possible rotations, are described with the operator ::golay_elements. For all elements of the Golay alphabet, except for 'c', the foreground and background masks are exchanged in order to have an effect for them on the outer boundary of the region. The element 'c' can be used to generate the convex hull of the input region if enough iterations are performed.


Parameters

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

RegionThick (output_object)
region(-array) -> Hobject * : HRegion(Array)
Result of the thickening operator.

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'

Iterations (input_control)
integer -> HTuple.long
Number of iterations.
Default value: 1
Suggested values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 17, 20, 30, 40, 50, 70, 100, 200
Typical range of values: 1 <= Iterations
Minimum increment: 1
Recommended increment: 1


Complexity

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

      O(Iterations * 6 * sqrt(F)) .


Result

::thickening_seq 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 Successors

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


Alternatives

::thickening_golay, ::thickening


See also

::erosion_golay, ::thinning_seq


Module

Morphology



Copyright © 1996-2002 MVTec Software GmbH