Skip to content

skeletonSkeletonSkeletonskeletonskeletonπŸ”—

Short descriptionπŸ”—

skeletonSkeletonSkeletonskeletonskeleton β€” Compute the skeleton of a region.

SignatureπŸ”—

skeleton( region Region, out region Skeleton )void Skeleton( const HObject& Region, HObject* Skeleton )static void HOperatorSet.Skeleton( HObject region, out HObject skeleton )def skeleton( region: HObject ) -> HObject

Herror skeleton( const Hobject Region, Hobject* Skeleton )

Herror T_skeleton( const Hobject Region, Hobject* Skeleton )

HRegion HRegion::Skeleton( ) const

HRegion HRegion.Skeleton( )

DescriptionπŸ”—

skeletonSkeleton 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πŸ”—

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Automatically parallelized on tuple level.

This operator supports canceling timeouts and interrupts.

ParametersπŸ”—

Regionregionregion (input_object) region(-array) β†’ objectHObjectHRegionHObjectHobject

Region to be thinned.

Skeletonskeletonskeleton (output_object) region(-array) β†’ objectHObjectHRegionHObjectHobject *

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πŸ”—

skeletonSkeleton 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>) and the behavior in case of an empty input region via set_system('empty_region_result',<Result>). If necessary, an exception is raised.

Combinations with other operatorsπŸ”—

Combinations

Possible predecessors

sobel_ampSobelAmp, edges_imageEdgesImage, bandpass_imageBandpassImage, thresholdThreshold, hysteresis_thresholdHysteresisThreshold

Possible successors

junctions_skeletonJunctionsSkeleton, pruningPruning

Alternatives

morph_skeletonMorphSkeleton, thinningThinning

See also

gray_skeletonGraySkeleton, sobel_ampSobelAmp, edges_imageEdgesImage, robertsRoberts, bandpass_imageBandpassImage, thresholdThreshold

ReferencesπŸ”—

Eckardt, U. β€œVerdΓΌnnung mit Perfekten Punkten”, Proceedings 10. DAGM-Symposium, IFB 180, Zurich, 1988

ModuleπŸ”—

Foundation