HALCON Reference Manual 10.0.2
Table of Contents / Morphology / Region ClassesClassesClasses | | | Operators

thinning_seqthinning_seqthinning_seqThinningSeqThinningSeq (Operator)

Name

thinning_seqthinning_seqthinning_seqThinningSeqThinningSeq — Remove the result of a hit-or-miss operation from a region (sequential).

Signature

thinning_seq(Region : RegionThin : GolayElement, Iterations : )

Herror thinning_seq(const Hobject Region, Hobject* RegionThin, const char* GolayElement, const Hlong Iterations)

Herror T_thinning_seq(const Hobject Region, Hobject* RegionThin, const Htuple GolayElement, const Htuple Iterations)

Herror thinning_seq(Hobject Region, Hobject* RegionThin, const HTuple& GolayElement, const HTuple& Iterations)

HRegion HRegion::ThinningSeq(const HTuple& GolayElement, const HTuple& Iterations) const

HRegionArray HRegionArray::ThinningSeq(const HTuple& GolayElement, const HTuple& Iterations) const

void HOperatorSetX.ThinningSeq(
[in] IHUntypedObjectX* Region, [out] IHUntypedObjectX*RegionThin, [in] VARIANT GolayElement, [in] VARIANT Iterations)

IHRegionX* HRegionX.ThinningSeq(
[in] BSTR GolayElement, [in] VARIANT Iterations)

static void HOperatorSet.ThinningSeq(HObject region, out HObject regionThin, HTuple golayElement, HTuple iterations)

HRegion HRegion.ThinningSeq(string golayElement, HTuple iterations)

HRegion HRegion.ThinningSeq(string golayElement, int iterations)

Description

thinning_seqthinning_seqthinning_seqThinningSeqThinningSeq calculates the sequential thinning of the input regions with a structuring element from the Golay alphabet (GolayElementGolayElementGolayElementGolayElementgolayElement). To do so, thinning_seqthinning_seqthinning_seqThinningSeqThinningSeq calls the operator thinning_golaythinning_golaythinning_golayThinningGolayThinningGolay with all possible rotations of the structuring element IterationsIterationsIterationsIterationsiterations times. If IterationsIterationsIterationsIterationsiterations is chosen large enough, the operator calculates the skeleton of a region if the structuring elements 'l' or 'm' are used. For the element 'c' the background and foreground are exchanged in order to have an effect on the interior boundary of a region. If a very large value or 'maximal' is passed for IterationsIterationsIterationsIterationsiterations the iteration stops if no more changes occur. The following structuring elements are available:

'l'

Skeleton, similar to skeletonskeletonskeletonSkeletonSkeleton. This structuring element is also used in morph_skizmorph_skizmorph_skizMorphSkizMorphSkiz.

'm'

A skeleton with many “hairs” and multiple (parallel) branches.

'd'

A skeleton without multiple branches, but with many gaps, similar to morph_skeletonmorph_skeletonmorph_skeletonMorphSkeletonMorphSkeleton.

'c'

Uniform erosion of the region.

'e'

One pixel wide lines are shortened. This structuring element is also used in morph_skizmorph_skizmorph_skizMorphSkizMorphSkiz.

'i'

Isolated points are removed. (Only IterationsIterationsIterationsIterationsiterations = 1 is useful.)

'f'

Y-junctions are eliminated. (Only IterationsIterationsIterationsIterationsiterations = 1 is useful.)

'f2'

One pixel long branches and corners are removed. (Only IterationsIterationsIterationsIterationsiterations = 1 is useful.)

'h'

A kind of inner boundary, which, however, is thicker than the result of boundaryboundaryboundaryBoundaryBoundary, is generated. (Only IterationsIterationsIterationsIterationsiterations = 1 is useful.)

'k'

Junction points are eliminated, but also new ones are generated.

The Golay elements, together with all possible rotations, are described with the operator golay_elementsgolay_elementsgolay_elementsGolayElementsGolayElements.

Parallelization

Parameters

RegionRegionRegionRegionregion (input_object)  region(-array) objectHRegionHRegionHRegionXHobject

Regions to be processed.

RegionThinRegionThinRegionThinRegionThinregionThin (output_object)  region(-array) objectHRegionHRegionHRegionXHobject *

Result of the thinning operator.

GolayElementGolayElementGolayElementGolayElementgolayElement (input_control)  string HTupleHTupleVARIANTHtuple (string) (string) (char*) (BSTR) (char*)

Structuring element from the Golay alphabet.

Default value: 'l' "l" "l" "l" "l"

List of values: 'l'"l""l""l""l", 'm'"m""m""m""m", 'd'"d""d""d""d", 'c'"c""c""c""c", 'e'"e""e""e""e", 'i'"i""i""i""i", 'f'"f""f""f""f", 'f2'"f2""f2""f2""f2", 'h'"h""h""h""h", 'k'"k""k""k""k"

IterationsIterationsIterationsIterationsiterations (input_control)  integer HTupleHTupleVARIANTHtuple (integer / string) (int / long / string) (Hlong / char*) (Hlong / BSTR) (Hlong / char*)

Number of iterations. For 'f', 'f2', 'h' and 'i' the only useful value is 1.

Default value: 20

Suggested values: 'maximal'"maximal""maximal""maximal""maximal", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 30, 40, 50, 70, 100, 150, 200

Typical range of values: 1 ≤ Iterations Iterations Iterations Iterations iterations (lin)

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

thinning_seqthinning_seqthinning_seqThinningSeqThinningSeq 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_normclass_ndim_normClassNdimNormClassNdimNorm, gen_circlegen_circlegen_circleGenCircleGenCircle, gen_ellipsegen_ellipsegen_ellipseGenEllipseGenEllipse, gen_rectangle1gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1, gen_rectangle2gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2, draw_regiondraw_regiondraw_regionDrawRegionDrawRegion, gen_region_pointsgen_region_pointsgen_region_pointsGenRegionPointsGenRegionPoints, gen_struct_elementsgen_struct_elementsgen_struct_elementsGenStructElementsGenStructElements, gen_region_polygon_filledgen_region_polygon_filledgen_region_polygon_filledGenRegionPolygonFilledGenRegionPolygonFilled

Possible Successors

pruningpruningpruningPruningPruning, reduce_domainreduce_domainreduce_domainReduceDomainReduceDomain, select_shapeselect_shapeselect_shapeSelectShapeSelectShape, area_centerarea_centerarea_centerAreaCenterAreaCenter, connectionconnectionconnectionConnectionConnection, complementcomplementcomplementComplementComplement

Alternatives

skeletonskeletonskeletonSkeletonSkeleton, morph_skizmorph_skizmorph_skizMorphSkizMorphSkiz, expand_regionexpand_regionexpand_regionExpandRegionExpandRegion

See also

hit_or_miss_seqhit_or_miss_seqhit_or_miss_seqHitOrMissSeqHitOrMissSeq, erosion_golayerosion_golayerosion_golayErosionGolayErosionGolay, differencedifferencedifferenceDifferenceDifference, thinning_golaythinning_golaythinning_golayThinningGolayThinningGolay, thinningthinningthinningThinningThinning, thickening_seqthickening_seqthickening_seqThickeningSeqThickeningSeq

Module

Foundation


Table of Contents / Morphology / Region ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH