skeletonskeletonSkeletonSkeletonskeleton (Operator)

Name

skeletonskeletonSkeletonSkeletonskeleton — 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)

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

HRegion HRegion::Skeleton() const

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

HRegion HRegion.Skeleton()

def skeleton(region: HObject) -> HObject

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.

Execution Information

Parameters

RegionRegionRegionRegionregionregion (input_object)  region(-array) objectHRegionHObjectHRegionHobject

Region to be thinned.

SkeletonSkeletonSkeletonSkeletonskeletonskeleton (output_object)  region(-array) objectHRegionHObjectHRegionHobject *

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 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>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("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>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>). If necessary, an exception is raised.

Possible Predecessors

sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp, edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImagebandpass_image, thresholdthresholdThresholdThresholdThresholdthreshold, hysteresis_thresholdhysteresis_thresholdHysteresisThresholdHysteresisThresholdHysteresisThresholdhysteresis_threshold

Possible Successors

junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton, pruningpruningPruningPruningPruningpruning

Alternatives

morph_skeletonmorph_skeletonMorphSkeletonMorphSkeletonMorphSkeletonmorph_skeleton, thinningthinningThinningThinningThinningthinning

See also

gray_skeletongray_skeletonGraySkeletonGraySkeletonGraySkeletongray_skeleton, sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp, edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, robertsrobertsRobertsRobertsRobertsroberts, bandpass_imagebandpass_imageBandpassImageBandpassImageBandpassImagebandpass_image, thresholdthresholdThresholdThresholdThresholdthreshold

References

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

Module

Foundation