thinning_seq thinning_seq ThinningSeq ThinningSeq thinning_seq (Operator)
Name
thinning_seq thinning_seq ThinningSeq ThinningSeq thinning_seq
— Remove the result of a hit-or-miss operation from a region (sequential).
Warning
thinning_seq thinning_seq ThinningSeq ThinningSeq ThinningSeq thinning_seq
is obsolete and is only provided for
reasons of backward compatibility.
Signature
Description
thinning_seq thinning_seq ThinningSeq ThinningSeq ThinningSeq thinning_seq
calculates the sequential thinning of
the input regions with a structuring element from the Golay alphabet
(GolayElement GolayElement GolayElement GolayElement golayElement golay_element
). To do so, thinning_seq thinning_seq ThinningSeq ThinningSeq ThinningSeq thinning_seq
calls the operator thinning_golay thinning_golay ThinningGolay ThinningGolay ThinningGolay thinning_golay
with all possible
rotations of the structuring element Iterations Iterations Iterations Iterations iterations iterations
times.
If Iterations Iterations Iterations Iterations iterations iterations
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
Iterations Iterations Iterations Iterations iterations iterations
the iteration stops if no more changes occur.
The following structuring elements are available:
'l'
Skeleton, similar to skeleton skeleton Skeleton Skeleton Skeleton skeleton
. This structuring
element is also used in morph_skiz morph_skiz MorphSkiz MorphSkiz MorphSkiz morph_skiz
.
'm'
A skeleton with many “hairs” and multiple (parallel)
branches.
'd'
A skeleton without multiple branches, but with many gaps,
similar to morph_skeleton morph_skeleton MorphSkeleton MorphSkeleton MorphSkeleton morph_skeleton
.
'c'
Uniform erosion of the region.
'e'
One pixel wide lines are shortened. This structuring element
is also used in morph_skiz morph_skiz MorphSkiz MorphSkiz MorphSkiz morph_skiz
.
'i'
Isolated points are removed. (Only Iterations Iterations Iterations Iterations iterations iterations
= 1
is useful.)
'f'
Y-junctions are eliminated. (Only Iterations Iterations Iterations Iterations iterations iterations
= 1
is useful.)
'f2'
One pixel long branches and corners are removed. (Only
Iterations Iterations Iterations Iterations iterations iterations
= 1 is useful.)
'h'
A kind of inner boundary, which, however, is thicker than the
result of boundary boundary Boundary Boundary Boundary boundary
, is generated. (Only
Iterations Iterations Iterations Iterations iterations iterations
= 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_elements golay_elements GolayElements GolayElements GolayElements golay_elements
.
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
Region Region Region Region region region
(input_object) region(-array) →
object HRegion HObject HRegion Hobject
Regions to be processed.
RegionThin RegionThin RegionThin RegionThin regionThin region_thin
(output_object) region(-array) →
object HRegion HObject HRegion Hobject *
Result of the thinning operator.
GolayElement GolayElement GolayElement GolayElement golayElement golay_element
(input_control) string →
HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Structuring element from the Golay alphabet.
Default:
'l'
"l"
"l"
"l"
"l"
"l"
List of values:
'c' "c" "c" "c" "c" "c" , 'd' "d" "d" "d" "d" "d" , 'e' "e" "e" "e" "e" "e" , 'f' "f" "f" "f" "f" "f" , 'f2' "f2" "f2" "f2" "f2" "f2" , 'h' "h" "h" "h" "h" "h" , 'i' "i" "i" "i" "i" "i" , 'k' "k" "k" "k" "k" "k" , 'l' "l" "l" "l" "l" "l" , 'm' "m" "m" "m" "m" "m"
Iterations Iterations Iterations Iterations iterations iterations
(input_control) integer →
HTuple Union[int, str] HTuple Htuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)
Number of iterations. For 'f', 'f2', 'h' and 'i'
the only useful value is 1.
Default:
20
Suggested values:
'maximal' "maximal" "maximal" "maximal" "maximal" "maximal" , 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 30, 40, 50, 70, 100, 150, 200
Value range:
1
≤
Iterations
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:
Result
thinning_seq thinning_seq ThinningSeq ThinningSeq ThinningSeq thinning_seq
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>) set_system("no_object_result",<RegionResult>) SetSystem("no_object_result",<RegionResult>) SetSystem("no_object_result",<RegionResult>) SetSystem("no_object_result",<RegionResult>) set_system("no_object_result",<RegionResult>)
empty region:
set_system('empty_region_result',<RegionResult>) set_system("empty_region_result",<RegionResult>) SetSystem("empty_region_result",<RegionResult>) SetSystem("empty_region_result",<RegionResult>) SetSystem("empty_region_result",<RegionResult>) set_system("empty_region_result",<RegionResult>)
Otherwise, an exception is raised.
Possible Predecessors
threshold threshold Threshold Threshold Threshold threshold
,
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing
,
connection connection Connection Connection Connection connection
,
union1 union1 Union1 Union1 Union1 union1
,
watersheds watersheds Watersheds Watersheds Watersheds watersheds
,
class_ndim_norm class_ndim_norm ClassNdimNorm ClassNdimNorm ClassNdimNorm class_ndim_norm
,
gen_circle gen_circle GenCircle GenCircle GenCircle gen_circle
,
gen_ellipse gen_ellipse GenEllipse GenEllipse GenEllipse gen_ellipse
,
gen_rectangle1 gen_rectangle1 GenRectangle1 GenRectangle1 GenRectangle1 gen_rectangle1
,
gen_rectangle2 gen_rectangle2 GenRectangle2 GenRectangle2 GenRectangle2 gen_rectangle2
,
draw_region draw_region DrawRegion DrawRegion DrawRegion draw_region
,
gen_region_points gen_region_points GenRegionPoints GenRegionPoints GenRegionPoints gen_region_points
,
gen_struct_elements gen_struct_elements GenStructElements GenStructElements GenStructElements gen_struct_elements
,
gen_region_polygon_filled gen_region_polygon_filled GenRegionPolygonFilled GenRegionPolygonFilled GenRegionPolygonFilled gen_region_polygon_filled
Possible Successors
pruning pruning Pruning Pruning Pruning pruning
,
reduce_domain reduce_domain ReduceDomain ReduceDomain ReduceDomain reduce_domain
,
select_shape select_shape SelectShape SelectShape SelectShape select_shape
,
area_center area_center AreaCenter AreaCenter AreaCenter area_center
,
connection connection Connection Connection Connection connection
,
complement complement Complement Complement Complement complement
Alternatives
skeleton skeleton Skeleton Skeleton Skeleton skeleton
,
morph_skiz morph_skiz MorphSkiz MorphSkiz MorphSkiz morph_skiz
,
expand_region expand_region ExpandRegion ExpandRegion ExpandRegion expand_region
See also
hit_or_miss_seq hit_or_miss_seq HitOrMissSeq HitOrMissSeq HitOrMissSeq hit_or_miss_seq
,
erosion_golay erosion_golay ErosionGolay ErosionGolay ErosionGolay erosion_golay
,
difference difference Difference Difference Difference difference
,
thinning_golay thinning_golay ThinningGolay ThinningGolay ThinningGolay thinning_golay
,
thinning thinning Thinning Thinning Thinning thinning
,
thickening_seq thickening_seq ThickeningSeq ThickeningSeq ThickeningSeq thickening_seq
Module
Foundation