Skip to content

morph_skizMorphSkizMorphSkizmorph_skizmorph_skizπŸ”—

Short descriptionπŸ”—

morph_skizMorphSkizMorphSkizmorph_skizmorph_skiz β€” Thinning of a region.

WarningπŸ”—

morph_skizMorphSkiz is obsolete and is only provided for reasons of backward compatibility.

SignatureπŸ”—

morph_skiz( region Region, out region RegionSkiz, integer Iterations1, integer Iterations2 )void MorphSkiz( const HObject& Region, HObject* RegionSkiz, const HTuple& Iterations1, const HTuple& Iterations2 )static void HOperatorSet.MorphSkiz( HObject region, out HObject regionSkiz, HTuple iterations1, HTuple iterations2 )def morph_skiz( region: HObject, iterations_1: Union[int, str], iterations_2: Union[int, str] ) -> HObject

Herror morph_skiz( const Hobject Region, Hobject* RegionSkiz, const Hlong Iterations1, const Hlong Iterations2 )

Herror T_morph_skiz( const Hobject Region, Hobject* RegionSkiz, const Htuple Iterations1, const Htuple Iterations2 )

HRegion HRegion::MorphSkiz( const HTuple& Iterations1, const HTuple& Iterations2 ) const

HRegion HRegion::MorphSkiz( Hlong Iterations1, Hlong Iterations2 ) const

HRegion HRegion.MorphSkiz( HTuple iterations1, HTuple iterations2 )

HRegion HRegion.MorphSkiz( int iterations1, int iterations2 )

DescriptionπŸ”—

morph_skizMorphSkiz first performs a sequential thinning (thinning_seqThinningSeq) of the input region with the element β€˜l’ of the Golay alphabet. The number of iterations is determined by the parameter Iterations1iterations1iterations_1. Then a sequential thinning of the resulting region with the element β€˜e’ of the Golay alphabet is carried out. The number of iterations for this step is determined by the parameter Iterations2iterations2iterations_2. The skiz operation serves to compute a kind of skeleton of the input regions, and to prune the branches of the resulting skeleton. If the skiz operation is applied to the complement of the region, the region and the resulting skeleton are separated.

If very large values or β€˜maximal’ are passed for Iterations1iterations1iterations_1 or Iterations2iterations2iterations_2, the processing stops if no more changes occur.

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.

ParametersπŸ”—

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

Regions to be thinned.

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

Result of the skiz operator.

Iterations1iterations1iterations_1 (input_control) integer β†’ (integer / string)HTuple (Hlong / HString)HTuple (int / long / string)Union[int, str]Htuple (Hlong / char*)

Number of iterations for the sequential thinning with the element β€˜l’ of the Golay alphabet.

Default: 100100
Suggested values: 'maximal', 0, 1, 2, 3, 5, 7, 10, 15, 20, 30, 40, 50, 70, 100, 150, 200, 300, 400"maximal", 0, 1, 2, 3, 5, 7, 10, 15, 20, 30, 40, 50, 70, 100, 150, 200, 300, 400
Value range: 0 ≀ Iterations1 (lin)
Minimum increment: 1
Recommended increment: 1

Iterations2iterations2iterations_2 (input_control) integer β†’ (integer / string)HTuple (Hlong / HString)HTuple (int / long / string)Union[int, str]Htuple (Hlong / char*)

Number of iterations for the sequential thinning with the element β€˜e’ of the Golay alphabet.

Default: 11
Suggested values: 'maximal', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 17, 20, 30, 40, 50"maximal", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 17, 20, 30, 40, 50
Value range: 0 ≀ Iterations2 (lin)
Minimum increment: 1
Recommended increment: 1

ComplexityπŸ”—

Let \(F\) be the area of the input region. Then the runtime complexity for one region is

\[\begin{eqnarray*} O((\textrm{Iterations1} + \textrm{Iterations2}) \cdot 3 \cdot \sqrt{F}) \enspace . \end{eqnarray*}\]

ResultπŸ”—

morph_skizMorphSkiz returns 2 (H_MSG_TRUE) if all parameters are correct. The behavior in case of empty or no input region can be set via:

  • no region: set_system('no_object_result',<RegionResult>)

  • empty region: set_system('empty_region_result',<RegionResult>)

Otherwise, an exception is raised.

Combinations with other operatorsπŸ”—

Combinations

Possible predecessors

thresholdThreshold, regiongrowingRegiongrowing, connectionConnection, union1Union1, watershedsWatersheds, class_ndim_normClassNdimNorm

Possible successors

pruningPruning, reduce_domainReduceDomain, select_shapeSelectShape, area_centerAreaCenter, connectionConnection, background_segBackgroundSeg, complementComplement

Alternatives

skeletonSkeleton, thinning_seqThinningSeq, morph_skeletonMorphSkeleton, interjacentInterjacent

See also

thinningThinning, hit_or_miss_seqHitOrMissSeq, differenceDifference

ModuleπŸ”—

Foundation