ClassesClassesClassesClasses | | | | Operators

skeletonskeletonSkeletonskeletonSkeletonSkeleton (Operator)

Name

skeletonskeletonSkeletonskeletonSkeletonSkeleton — Compute the skeleton of a region.

Signature

skeleton(Region : Skeleton : : )

Herror skeleton(const Hobject Region, Hobject* Skeleton)

Herror T_skeleton(const Hobject Region, Hobject* Skeleton)

Herror skeleton(Hobject Region, Hobject* Skeleton)

HRegion HRegion::Skeleton() const

HRegionArray HRegionArray::Skeleton() const

void Skeleton(const HObject& Region, HObject* Skeleton)

HRegion HRegion::Skeleton() const

void HOperatorSetX.Skeleton(
[in] IHUntypedObjectX* Region, [out] IHUntypedObjectX*Skeleton)

IHRegionX* HRegionX.Skeleton()

static void HOperatorSet.Skeleton(HObject region, out HObject skeleton)

HRegion HRegion.Skeleton()

Description

skeletonskeletonSkeletonskeletonSkeletonSkeleton computes the skeleton, i.e., the medial axis of the input regions. The skeleton is constructed in a way that each point on it can be seen as the center point of a circle with the largest radius possible while still being completely contained in the region.

Parallelization

Parameters

RegionRegionRegionRegionRegionregion (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Region to be thinned.

SkeletonSkeletonSkeletonSkeletonSkeletonskeleton (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

Resulting skeleton.

Number of elements: Skeleton == Region

Complexity

Let F be the area of the enclosing rectangle of the input region. Then the runtime complexity is O(F) (per region).

Result

skeletonskeletonSkeletonskeletonSkeletonSkeleton returns 2 (H_MSG_TRUE) if all parameters are correct. 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>)set_system("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>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>). If necessary, an exception is raised.

Possible Predecessors

sobel_ampsobel_ampSobelAmpsobel_ampSobelAmpSobelAmp, edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage, bandpass_imagebandpass_imageBandpassImagebandpass_imageBandpassImageBandpassImage, thresholdthresholdThresholdthresholdThresholdThreshold, hysteresis_thresholdhysteresis_thresholdHysteresisThresholdhysteresis_thresholdHysteresisThresholdHysteresisThreshold

Possible Successors

junctions_skeletonjunctions_skeletonJunctionsSkeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeleton, pruningpruningPruningpruningPruningPruning

Alternatives

morph_skeletonmorph_skeletonMorphSkeletonmorph_skeletonMorphSkeletonMorphSkeleton, thinningthinningThinningthinningThinningThinning

See also

gray_skeletongray_skeletonGraySkeletongray_skeletonGraySkeletonGraySkeleton, sobel_ampsobel_ampSobelAmpsobel_ampSobelAmpSobelAmp, edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage, robertsrobertsRobertsrobertsRobertsRoberts, bandpass_imagebandpass_imageBandpassImagebandpass_imageBandpassImageBandpassImage, thresholdthresholdThresholdthresholdThresholdThreshold

References

Eckardt, U. “Verdünnung mit Perfekten Punkten”, Proceedings 10. DAGM-Symposium, IFB 180, Zurich, 1988

Module

Foundation


ClassesClassesClassesClasses | | | | Operators